spl*_*tne 5 indexes optimization performance 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 我要去看看我现在创建的一些生产数据库,看看这些统计数据是什么样的。(微笑)
编辑:这里有一些非常好的 addt'l 背景: http://blogs.msdn.com/craigfr/archive/2008/10/30/what-is-the-difference-between-sys-dm-db-index-usage-stats-and-sys-dm-db-索引操作stats.aspx
使用 sys.dm_db_index_usage_stats 时要记住以下几点:
希望这可以帮助。
PS 对于阅读本文并想知道 SQL Server 2000 是否有等效方法的其他人来说,还有一件事 - 不,我们(当时我在团队中)只添加了 2005 年以后的功能。
归档时间: |
|
查看次数: |
2830 次 |
最近记录: |