Отсутствующие индексы в MS-SQL или оптимизация «по-быстрому»

добавлено: 10 ноя 17
понравилось:0
просмотров: 429
комментов: 0

теги:

Автор: Алексей Куренков

При выполнении запроса, как мы знаем, оптимизатор SQL Server исходя из существующих индексов и имеющейся свежей статистики пытается за разумное время найти лучший план запроса, конечно если этот план уже не «сидит» в кэше сервера, и запрос выполняется по этому плану и план сохраняется в кэш сервера. Если план уже построен для этого запроса ранее, то запрос выполняется по существующему плану.
Нам в этой теме интересен следующий момент: Во время компиляции плана запроса, при переборе возможных индексов, если лучшего индекса не нашлось (по мнению сервера), то в плане запроса помечается этот не найденный индекс, и сервер ведет статистику по таким индексам – сколько раз сервер бы воспользовался этим индексом и сколько стоил этот запрос. Эти отсутствующие индексы – missing indexes мы сейчас и разберем, что с ними делать и как с ними работать.
Предлагаю на примере разобраться с отсутствующими индексами. Создадим пару таблиц в нашей, БД на локальном или тестовом сервере и дальнейшее ознакомление со статьей предлагаю продолжить на моем сайте http://www.kurenkov.pro/blog/87-otsutstvuyushchie-indeksy-v-ms-sql-ili-optimizatsiya-po-bystromu.

Комментарии




Необходимо войти на сайт, чтобы оставлять комментарии