Когда речь идет об оптимизации запросов в SQL Server, одна важная концепция, которую нужно понять, это использование индексов. В предыдущей серии статей мы обсудили, как удалить поиск по закладке, поиск по RID и поиск по ключу. В этой статье мы продолжим наше исследование этой темы.
В предыдущих статьях мы узнали, что мы можем удалить поиск по закладке, используя покрывающий индекс. Покрывающий индекс – это индекс, который включает все столбцы, используемые в операторах SELECT, JOIN и WHERE запроса. В нашем примере мы сначала создали кластеризованный индекс:
CREATE CLUSTERED INDEX [IX_OneIndex_ID] ON [dbo].[OneIndex]
(
[ID] ASC
) ON [PRIMARY]
GOНа основе кластеризованного индекса мы затем создали некластеризованный индекс. Важно отметить, что нам не обязательно создавать оба типа индексов одновременно. Мы можем выбрать создание либо покрывающего индекса, либо индекса с включенными столбцами. В некластеризованном индексе нет необходимости включать столбцы, которые уже включены в кластеризованный индекс, так как некластеризованный индекс автоматически содержит указатели на кластеризованный индекс.
Вот два метода создания нужного индекса:
Метод 1: Создание покрывающего некластеризованного индекса:
CREATE NONCLUSTERED INDEX [IX_OneIndex_Cover] ON [dbo].[OneIndex]
(
City, FirstName
) ON [PRIMARY]
GOМетод 2: Создание индекса с включенными столбцами:
CREATE NONCLUSTERED INDEX [IX_OneIndex_Include] ON [dbo].[OneIndex]
(
City
) INCLUDE (FirstName) ON [PRIMARY]
GOПосле создания индексов важно изучить план выполнения и сравнить затраты на запрос. Нам также нужно проверить, используются ли оба индекса для принудительного поиска по индексу, а не поиска по индексу. Это поможет нам определить эффективность нашего создания индекса.
Понимая концепцию покрывающих индексов и индексов с включенными столбцами, мы можем значительно улучшить производительность наших запросов в SQL Server. Удаление поиска по закладке может привести к более быстрому выполнению запроса и лучшей общей производительности базы данных.
Для получения дополнительной информации о оптимизации запросов и удалении поиска по закладке обязательно ознакомьтесь с предыдущими статьями в этой серии:
- SQL SERVER – Оптимизация запросов – Удаление поиска по закладке – Удаление поиска по RID – Удаление поиска по ключу
- SQL SERVER – Оптимизация запросов – Удаление поиска по закладке – Удаление поиска по RID – Удаление поиска по ключу – Часть 2
- SQL SERVER – Оптимизация запросов – Удаление поиска по закладке – Удаление поиска по RID – Удаление поиска по ключу – Часть 3
Следите за новыми статьями о методах оптимизации и bewt практиках в SQL Server!