Индексы
Основные тезисы:
1) Индексы ускоряют выборку данных из таблицы, но замедляют вставку и редактирование (если изменяются столбцы задействованные хотя бы в одном индексе).
2) При создании индексов стоит учитывать:
2.1) Как часто с данной таблицей будут производиться операции чтения/записи.
2.2) Какие конкретно запросы будут выполняться. (по каким полям будет идти поиск, соединение, группировка, сортировка: WHERE, JOIN)
2.3) Предполагаемые размеры таблицы.
Критерий - кластеризованный индекс
Кластеризованный индекс
Данный индекс определяет порядок строк в таблице.
При вставке новой записи в таблицу рассчитывается значение кластеризованного индекса для новой строки, на основе которого выполняется вставка в имеющийся набор строк.
Для таблицы может быть только 1 кластеризованный индекс. Обычно совпадает с первичным ключом. Также в таблице может отсутствовать кластеризованного индекса (строки будут расположены в порядке их добавления).
Некластеризованный индекс
Не влияет на физический порядок строк. Используется для оптимизации выборки данных.
Вопросы
1) Оценка состояния индексов. Поддержка индексов в актуальном состоянии.
Критерии состояния индекса (фрагментация).
Действия по обслуживанию индекса (перестроение, пересоздание).
Ссылки:
14 вопросов об индексах в SQL Server, которые вы стеснялись задать
https://habr.com/ru/post/247373/
Основы индексов в Microsoft SQL Server
https://info-comp.ru/programmirovanie/575-index-basics-in-ms-sql-server.html
Обслуживание индексов и статистик MS SQL Server
https://infostart.ru/public/256292/
Неожиданная находка, которая освобождает 20 GB неиспользованного индексного пространства [Postgres]
https://habr.com/ru/company/otus/blog/672102/