Published on

September 29, 2009

Понимание индексов SQL Server

Когда речь идет об оптимизации запросов в 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. Удаление поиска по закладке может привести к более быстрому выполнению запроса и лучшей общей производительности базы данных.

Для получения дополнительной информации о оптимизации запросов и удалении поиска по закладке обязательно ознакомьтесь с предыдущими статьями в этой серии:

Следите за новыми статьями о методах оптимизации и bewt практиках в SQL Server!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.