Sql-Server
查找操作 SQL Server 數據庫的不必要索引的方法?
除了浪費數據庫空間外,SQL Server 上不必要的索引還會減慢插入和更新操作。缺乏數據庫原理經驗的開發人員有時傾向於創建對正在執行的查詢沒有意義的表索引。
是否有用於 SQL Server 2005/2008 的通用程序或工具來分析數據庫工作負載並提示在某個操作數據庫上哪些索引從不使用或不需要?
謝謝!
我在這裡看到了一個可愛的小 T-SQL 腳本(http://blog.sqlauthority.com/2008/02/11/sql-server-2005-find-unused-indexes-of-current-database/)顯示應該在 SQL Server 2005 上執行的未使用的索引。另一個http://aspadvice.com/blogs/ssmith/archive/2008/03/31/Find-Unused-SQL-2005-Indexes-for-Current-DB.aspx也在這裡。
看起來 dm_db_index_usage_stats 是所有這一切的關鍵。很簡約!(看http://msdn.microsoft.com/en-us/library/ms188755.aspx 我得去看看我現在創建的一些生產數據庫,看看這些統計數據是什麼樣的。(微笑)
編輯:這裡有一些非常好的附加背景:http://blogs.msdn.com/craigfr/archive/2008/10/30/what-is-the-difference-between-sys-dm-db-index-usage-stats-and-sys-dm-db-index-operational-stats.aspx