Я хочу создать лучшие индексы для каждой таблицы в моей базе данных. Есть ли запрос или инструмент в SQL Server, чтобы помочь с этим процессом?
Я хочу создать лучшие индексы для каждой таблицы в моей базе данных. Есть ли запрос или инструмент в SQL Server, чтобы помочь с этим процессом?
Ответы:
Да, есть такие инструменты, как советник по настройке ядра базы данных. Он поставляется с SQL Server и делает несколько неприятных вещей:
Надлежащий подход к настройке индексов заключается в рассмотрении всей вашей рабочей нагрузки в течение полного бизнес-цикла. Иногда лучше обратиться к сторонним инструментам, чем изобретать велосипед. DBSophic делает бесплатный продукт под названием Qure Workload Analyzer, который, я думаю, работает намного лучше, чем DTA, но их лицензионный инструмент (Qure Workload Optimizer) абсолютно феноменален в своих действиях. В прошлом году я писал о том, как работает этот инструмент при интеграции с SQL Sentry ).
Также есть некоторые другие опции, например, отсутствующие индексы сообщаются в DMV, и вы также можете узнать, в какие индексы записываются данные (поэтому они занимают место и влияют на операции вставки / обновления / удаления), но никогда (или редко). ) используется пользовательскими запросами:
Но они также нуждаются в предупреждении о том, что DMV действительны только с момента последнего перезапуска SQL Server, и что они не обязательно охватывают надлежащий бизнес-цикл (и, следовательно, могут пропустить важную информацию
Инструмент, о котором вы говорите, называется помощником по настройке ядра СУБД (для краткости DTA). Он может принимать ряд входных данных и давать рекомендации по таким вещам, как отсутствующие индексы. Тем не менее, стоит отметить, что это всего лишь предложения, и вместо того, чтобы слепо следовать рекомендациям DTA, следует тщательно их рассмотреть.
Стоит также отметить, что существуют встроенные DMV для сбора информации такого типа: