Я работаю над хранилищем данных. У меня есть таблицы с записями до 200 миллионов. Некоторые из этих таблиц имеют более 20 индексов (я не могу указать причину, почему они были созданы в первую очередь). Это делает работу по поддержанию этих индексов слишком болезненной и оказывает непосредственное влияние на работу импорта DWH как по производительности, так и по времени выполнения.
Как найти наименее используемые индексы для каждой таблицы? (чтобы избавиться от них)
sql-server
ssms
Мусульманин Бен Дхау
источник
источник
sys.dm_db_index_usage_stats
предоставляет эту информацию.Ответы:
Попробуйте этот скрипт, он помог мне в прошлом:
http://blog.sqlauthority.com/2011/01/04/sql-server-2008-unused-index-script-download/
источник
Я обнаружил, что бесплатный скрипт BlitzIndex от Brent Ozar Unlimited (написанный Кендрой Литтлом) - лучший способ изолировать неподдерживаемые индексы (а также индексы, которые выгодно добавлять, индексы, дублирующие работу других индексов и т. Д.)
http://www.brentozar.com/blitzindex/
Он сообщит вам количество раз, когда какой-либо индекс был прочитан с момента последнего сброса статистических показателей (или создания / повторного создания индекса).
Кажется, я помню, как Брент Озар говорил в веб-трансляции, что хорошее эмпирическое правило - не более 10 индексов для таблицы, которую часто читают, и 20 для таблиц, которые представляют собой статические / исторические / архивные данные, которые не будут часто меняться.
Если у вас все еще есть проблемы со скоростью импорта, то есть время, когда база данных не запрашивается активно (возможно, это не в рабочее время). Может быть полезно удалить индекс, импортировать данные и затем повторно применить индексы. (Статистика будет сброшена, конечно.) Причина этого в том, что индексы будут обновляться по мере поступления каждой записи, страницы будут переупорядочены, а для этого потребуется время и дисковый ввод-вывод. Построение индексов после требует одного сканирования таблицы.
Нет жесткого и быстрого правила, вам, возможно, придется экспериментировать с этим в зависимости от типов индекса и задействованных данных. Индексы должны регулярно пересматриваться по мере изменения потребностей / запросов.
источник
Попробуй это:
Радж
источник
Я добавил последнюю использованную дату и код для перехода к запросу Радж.
источник