iT邦幫忙

DAY 15
7

SQL SERVER 2008效能監控與最佳化系列 第 15

Day15_查詢最常使用的Index

使用sys.dm_db_index_usage_stats與sys.indexes可以輕鬆的瞭解Index的使用數
在Index的管理,我們常常會關心Index的使用情況,為什麼要關注Index的使用情況呢?原因如下;

  1. 找出最常使用的Index,我們可以針對Index這些Index做加強。
  2. 找出最不常使用的Index或根本沒使用過的Index並把它刪除掉,因為過多的Index會影響資料異動(Inser、Update、Delete)的效能。

查詢Index使用狀況的語法如下:

--查詢最常使用的Index
SELECT DB_NAME(a.database_id) DBName,OBJECT_NAME(a.[object_id]) AS TableName,
b.name,(a.user_seeks + a.user_scans + a.user_lookups) AS [UsaCount],
 a.user_updates FROM sys.dm_db_index_usage_stats a LEFT JOIN sys.indexes b
on a.index_id=b.index_id
WHERE  DB_NAME(database_id)=DB_NAME()
AND b.name IS NOT NULL
AND b.[object_id]  
IN 
(
SELECT [object_id]  FROM sys.dm_db_index_usage_stats 
WHERE  DB_NAME(database_id)=DB_NAME() 
)
ORDER BY [UsaCount] DESC

執行結果:

我們使用sys.dm_db_index_usage_stats與sys.indexes列出有使用過的Index,在搭配sys.dm_db_index_usage_stats的user_seeks + user_scans + user_lookups來判斷Index的使用狀況。如此就可以輕鬆的瞭解Index的使用數。


上一篇
Day14_實做FillFactor
下一篇
Day16_實作SQL與DataCompression查詢篇01
系列文
SQL SERVER 2008效能監控與最佳化30

尚未有邦友留言

立即登入留言