Безусловно: создание индексов покрытия
Покрывающий индекс включает в себя все столбцы, в которых будет нуждаться запрос, что позволяет избежать необходимости поиска результатов поиска по индексу. Это позволит избежать ощущения системой того, что сканирование может быть более быстрым (что удивительно быстро, учитывая стоимость поиска).
Но также стоит упомянуть:
Наличие индекса, который позволит объединение слиянием. Соединение MERGE может произойти при объединении двух таблиц, упорядоченных по условиям соединения. Но, конечно, говоря «таблица», мы действительно имеем в виду «индекс», верно ...
Также - удаление скалярных функций и использование вместо них табличных функций ... поскольку скалярные функции не могут быть упрощены.
Кроме того - добавление уникального индекса в столбец, который, как вы знаете, является уникальным, позволяет оптимизатору запросов использовать эти знания для лучшего выбора оптимизации. Также применяется к ограничениям NOT NULL.
Также - использование двоичного сопоставления при сравнении строк в известном случае, чтобы системе не приходилось учитывать различные варианты случая.
Конечно, я мог бы идти весь день ...
Rob