Некластеризованный индекс с включенным или почти таким же некластеризованным индексом без; Покрытие нескольких запросов - PullRequest
2 голосов
/ 01 декабря 2010

У меня есть два существующих индекса в БД, как показано ниже

  1. СОЗДАТЬ НЕКЛАСТЕРНЫЙ ИНДЕКС IndexTable1 ON Table (fkAnothertable)

  2. СОЗДАТЬ НЕКЛАСТЕРНЫЙ ИНДЕКС IndexTable2 ON Table (fkAnothertable) ВКЛЮЧИТЬ (pkTable)

У меня была догадка, и мое исследование, кажется, указывает, что любые запросы, которые вызывают # 1, будут удовлетворены # 2, и что # 1 расточительно. Я не смог найти окончательного ответа.

Правильно ли это предположение, и могу ли я упасть # 1 и потенциально улучшить производительность?

1 Ответ

2 голосов
/ 01 декабря 2010

Да.# 2 полностью покрывает # 1 и, возможно, наоборот.pkTable ваш ключ кластеризованного индекса?Если это так, это будет включено в # 1 (на уровне ключа, поскольку некластеризованный индекс не объявлен как уникальный).

Если pkTable не является ключом кластеризации, тогда запросы, ищущие по #1, все равно будутбыть удовлетворенным #2, но #2 может занимать больше страниц, что делает сканирование, которое бы использовало #1, чуть менее эффективным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...