我有一个高需求的事务数据库,我认为该数据库索引过度。最初,它根本没有任何索引,因此为常见流程添加一些索引会产生巨大的差异。然而,随着时间的推移,我们创建了索引来加速单个查询,一些最流行的表上有 10-15 个不同的索引,在某些情况下,索引彼此之间仅略有不同,或者是相同的列以不同的顺序。
有没有一种简单的方法来观察数据库活动并判断是否有任何索引不再被命中,或者它们的使用百分比是多少?我担心创建索引是为了加速单个每日/每周查询,甚至是不再运行的查询,但索引仍然必须在每次数据更改时保持最新。
在高流量表的情况下,每秒十几次,我想消除那些拖累数据更新的索引,同时只提供边际改进。
查看用户搜索/扫描/查找的数量以及上次用户搜索/扫描/查找的数量sys.dm_db_index_usage_stats http://msdn.microsoft.com/en-us/library/ms188755.aspx。这些统计数据在服务器启动时重置,因此您必须在服务器启动并运行相关负载足够的时间后进行检查。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)