Sql-Server

重新排列索引以獲得更好性能的更好方法

  • July 11, 2016

我執行了一個腳本來查找數據庫的重疊和重複索引。

下面是上面所說的範例螢幕。

在此處輸入圖像描述

請告知我該如何安排它們,或者在刪除它們之前應該有什麼指導方針來製作更好的索引。

其中一些索引似乎有很多包含的列。表定義將為這些列的寬度提供上下文。什麼是聚集索引鍵?

您需要查看針對此表執行的工作負載。正在執行哪些查詢,多久執行一次,這是否會在未來發生變化?

我可能會從查看目前索引使用統計資訊開始,以了解如何使用索引(搜尋、掃描、鍵查找、更新)。

SELECT  
OBJECT_NAME([ddius].[object_id]) AS [Table name] , 
[i].[name] AS [index name] , 
i.type_desc,
user_seeks,
user_scans,
user_lookups,
user_updates
FROM sys.indexes i
left outer join [sys].[dm_db_index_usage_stats] ddius on  ddius.index_id = i.index_id 
and [ddius].[object_id] = [i].[object_id] 
WHERE [ddius].[database_id] = DB_ID() 
order by [Table name]

您還可以查看缺少的索引 DMV。但是,您需要對返回的資訊持保留態度。SQL 將允許您創建重複索引,針對特定查詢“推薦”創建索引建議,但可能存在組合索引。不幸的是,索引是一個反複試驗。

引用自:https://dba.stackexchange.com/questions/143522