Могу ли я объединить 2 некластеризованных индекса (столбец появляется в списке ключей idx_1 и появляется в списке включения idx2) - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть некластеризованный индекс (idx_1) с именем first_name, last_name в списке ключей и списком меток. Другой некластеризованный индекс (idx_2) с first_name, last_name и метками в списке ключей и без столбцов в списке включения. Я хочу объединить эти два индекса в один индекс. Каково было бы оптимальное решение?

1 Ответ

1 голос
/ 26 апреля 2019

Да! Вы должны сбросить idx_1. Но перед этим неплохо было бы проанализировать использование индекса. Проверьте, сколько запросов, сканирований по каждому индексу. Вы можете использовать этот запрос T-SQL.

SELECT OBJECT_NAME(IX.OBJECT_ID) Table_Name
       ,IX.name AS Index_Name
       ,IX.type_desc Index_Type
       ,SUM(PS.[used_page_count]) * 8 IndexSizeKB
       ,IXUS.user_seeks AS NumOfSeeks
       ,IXUS.user_scans AS NumOfScans
       ,IXUS.user_lookups AS NumOfLookups
       ,IXUS.user_updates AS NumOfUpdates
       ,IXUS.last_user_seek AS LastSeek
       ,IXUS.last_user_scan AS LastScan
       ,IXUS.last_user_lookup AS LastLookup
       ,IXUS.last_user_update AS LastUpdate
FROM sys.indexes IX
INNER JOIN sys.dm_db_index_usage_stats IXUS ON IXUS.index_id = IX.index_id AND IXUS.OBJECT_ID = IX.OBJECT_ID
INNER JOIN sys.dm_db_partition_stats PS on PS.object_id=IX.object_id
WHERE OBJECTPROPERTY(IX.OBJECT_ID,'IsUserTable') = 1
GROUP BY OBJECT_NAME(IX.OBJECT_ID) ,IX.name ,IX.type_desc ,IXUS.user_seeks ,IXUS.user_scans ,IXUS.user_lookups,IXUS.user_updates ,IXUS.last_user_seek ,IXUS.last_user_scan ,IXUS.last_user_lookup ,IXUS.last_user_update

Кроме того, взгляните на следующую ссылку sys.dm_db_index_usage_stats

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