Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Индексы

Обращения к данным оптимизируются с помощью индексов. Поскольку требования к индексированию основываются на специфике использования данных, неправильный выбор индексов является одной из самых распространенных причин медленного исполнения запроса БД.

Типовая схема обслуживания индексов должна предусматривать периодические исследования условия использования индексов. Проверку схемы индексации и подстройку или оптимизацию индексов для текущих условий использования, отключая или создавая новый индекс.

Построение индексов

Когда создается индекс, подсистема хранилища делает выборку записей и определяет самый эффективный способ использования ресурсов сервера для создания индексов. Разные опции при этом позволяют управлять тем, какие системные ресурсы будут при этом распределены.

 

Ресурс Команда Опции Описание
TempDB create index Sort in tempdb Задействует распределяемое в tempdb дисковое пространство для сортировки при создании индекса. Способствует повышению пропускной способности ввода/вывода, если tempdb находится на нескольких дисках.
Память sp_config Index create memory Определяет объем памяти, используемый при создании любых индексов.
СPU sp_config Max degree of parallelism Ограничивает число процессоров, используемых в параллельных операциях.

Еще одним механизмом обеспечения масштабируемости является параллельное создание индексов. Этот процесс активизируется автоматически, когда серверу поступает инструкция по созданию индексов.

Подсистема хранилища определяет требования к данным и создает отдельные потоки.

Дефрагментация индексов

SQLServer поддерживает реорганизацию индексов «налету». Она не сильно влияет на производительность других операций и может быть остановлена и перезапущена в любой момент без потерь в своей работе. Вследствие вставок, удалений и изменений данных в таблице, страницы индексов могут оказаться фрагментированными, что снижает эффективность запросов.

Возможно использование команды DBCC SHOWCOUNTING, чтобы наблюдать и анализировать процесс фрагментации.

Если индекс фрагментирован, можно, используя команду DBCC INDEXDEFRUG, выполнить дефрагментацию индекса. Таким образом, можно поднять производительность операций чтения, за счет увеличения плотности заполнения страниц. Из-за чего во время выборки данных будет считываться меньшее их число.

Регистрация и регенерация.

Журнал транзакция представляет собой последовательность записей об изменениях БД. Регистрационные записи, сгенерированные транзакциями, сохраняются на диске в момент завершения своих транзакций. В том время как, страницы данных изменяемые транзакции сразу на диск не записываются, но сохраняются в кэш SQLServer для записи на диск спустя некоторое время.

Отсрочка записи на диск повышает эффективность массового доступа к страницам данных и позволяет избежать прерывания сканирования. Принудительная запись в файл журнала на диске позволяет гарантировать, что полностью завершенные операции не будут потеряны, если сервер будет остановлен.

Механизм восстановления (recovery) гарантирует, что база данных остается транзакционно непротиворечива до момента, пока она не станет доступна. Если БД транзакционно непротиворечива в ней будут отражены все завершенные операции, а любые незаконченные действия будут отменены.

Процесс восстановления приводит данные в совместимое с журналом транзакций состояние. Восстановление, выполняемое во время запуска SQLServer, называют restart/startup recovery. Восстановление из резервной копии, которое обычно необходимо из-за отказа дисков – media recovery.

Восстановление имеет 2 стадии:

1. redo – повторяет все изменения до искомой метки в журнале транзакций.

2. Undo – отменяет все действия, выполненные транзакциями, которые были активны на момент времени, где завершилась стадия повтора redo.

Для ускорения restart/recovery SQLServer использует контрольные точки, которая сбрасывает все измененные на момент ее прохождения страницы данных из буфферного кэш на диск.


<== предыдущая страница | следующая страница ==>
Основные расширения, реализованные в подсистеме хранилища MSSQL | Модели резервирования

Дата добавления: 2015-07-26; просмотров: 167; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.004 сек.