Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#261<< #262 |
СОДЕРЖАНИЕ
Кэширование в SQLOS По материалам статьи Slava Oks: SQLOS Caching Эта статья рассказывает о том, как изменился механизм кэширования в SQL Server 2005. Отличия в кэшировании SQL Server 2000 и SQL Server 2005
Управление памятью SQL Server 2005 отличается от SQL Server 2000 более сложной
структурой кэширования. В SQL Server 2000 реализовано два основных кэша: кэш страницы
данных, называемый Buffer Pool, и кэш процедур, кэш планов исполнения запросов. Buffer
Pool и кэш процедур очень сильной связаны между собой. Например, кэш процедур использует
механизм выселения буферного пула, чтобы управлять его размером, не смотря на то, что
оба кэша имеют собственные политики оценки. Использование связанных BP и кэша процедур
значительно упрощает механизм кэширования SQL Server 2000, с которым мы, как правило,
имеем дело при разрешении проблем. Общая структура кэширования
Для кэшей разных типов данных SQLOS использует общую структуру кэширования. Реализовано
несколько типов механизмов кэширования: Cache Store, User Store и Object Store. Каждое
такое хранилище имеет свои собственные свойства и, следовательно, по своему используется.
User Store - это немного неуклюжее название для кэша, но когда я опишу его применение,
Вы поймёте логику такого именования. Cache Store и User Store Оба хранилища фактически являются кэшем и очень похожи. Используемые ранее такие инструменты, как хеш-таблицы и определение последних, затребовавших кэш пользователей, были усовершенствованы разработчиками, в результате чего была создана новая структура, имеющая собственную семантику памяти, и получившая название User Store.
Концептуально для кэшей SQLOS представлены два основных вида контроля - управление
жизненным циклом и управление видимостью. Управление жизненным циклом осуществляет
управление элементом на протяжении его жизни в кэше. Управление видимостью осуществляет
управление видимостью элемента. Важно понять, что элемент может существовать в кэше,
но в то же время быть невидим. Например, если кэш отмечен только для одноразового
использования, элемент не будет видим после того, как его используют. Кроме того,
элемент может быть помечен как грязный. Такие элементы по-прежнему продолжают существовать,
жить, в кэше, но при поиске они никому не будут видны. Хеш-таблицы Механизм хранилища кэша имеет свою собственную память - хеш-таблицы. Одно хранилище кэша может иметь несколько хеш-таблиц. Это очень полезно, когда хранилища кэша пользователей должны поддерживать несколько типов поисковых запросов. Например, кэш процедур SQL Server эксплуатирует эти функциональные возможности, кода необходимо обеспечить процедурам поиск по имени или по идентификатору. Процесс поиска в различных хеш-таблицах независим друг от друга и не вступает в противоречие с процессами синхронизации, описанным ниже. Алгоритм синхронизации
Структура кэша SQLOS для управления видимостью и жизненным циклом элементов кэша
реализует политику LRU. Моделирование LRU необходимо для реализации алгоритма
синхронизации (Clock Hands). Объект Clock Algorithm присутствует и в хранилищах Cache
и User Store. В настоящее время существуют две возможности для Clock Hands: внутреннее
руководство и внешнее. Внешнее руководство выполняет Resource Monitor, и оно необходимо,
когда вытеснению памяти подвержен процесс целиком. (
http://blogs.msdn.com/slavao/archive/2005/02/19/376714.aspx) Хранилище объектов Хранилище объектов (Object Store) представляет из себя обыкновенный пул. Оно используется в качестве кэша гомогенных типов данных. В настоящее время для этого типа хранилища не используются какие - либо оценки, связанным с его элементами. Object Store отслеживает максимальную ёмкость, что используется для управления его размером относительно других кэшей. В дополнение к описанным в предыдущих статьях оповещениям Resource Monitor о вытеснении памяти, Object Store умеет сокращать установленное при начальной конфигурации число элементов. В будущем можно будет реализовать более сложные алгоритмы, а пока мы хотели бы оставить всё это простым настолько, насколько это возможно. DM-представления хранилищ и контроль заполнения кэшей
DM-представления (dmv) SQL Server 2005 дают Вам возможность отслеживать поведение кэша
во время его использования. В Beta 2 их было не очень много, и они представляли информацию
о хранилищах: sys.dm_os_memory_caches и sys.dm_os_memory_pools.
Эти динамические представления очень полезны для понимания работы кэшей, их контроля и настройки поведения отдельного хранилища или всего SQL Server. Например, если Вы наблюдаете для Clock Hands постоянное руководство перемещениями, Вы можете повысить производительность сервера, найдя способы сократить их число. Следующая статья
В моей следующей статье я попробую проанализировать разные ошибки, связанные с
недостаточностью памяти (OOM). Я также намерен показать способы, позволяющие избежать
погружения сервера в разного типа вытеснение памяти. Статьи на русском языке
Производительность хранимых процедур MS SQL Server 2000
Null and the colon operator Самые популярные темы недели
Кто на чем пишет клиентов под SQL Server?
Нужна помощь в импорте базы paradox 7.x |
Вопросы, предложения, коментарии, замечания, критику и т.п. оставляйте Виталию Степаненко и Александру Гладченко в форуме: Обсуждение рассылки
|
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.winsoft.sqlhelpyouself |
Отписаться
Вспомнить пароль |
В избранное | ||