sql-server – SQL Server – 如何确定索引是否未被使用?

我有一个高需求的事务数据库,我认为是过度索引.最初,它根本没有任何索引,因此为常见过程添加一些索引会产生巨大的差异.但是,随着时间的推移,我们已经创建了索引来加速单个查询,一些最流行的表上有10-15个不同的索引,在某些情况下,索引只是略有不同,或者是相同的列以不同的顺序排列.

有没有一种直接的方法来观察数据库活动并告诉我们是否有任何索引不再被命中,或者它们的使用百分比是多少?我担心创建索引是为了加快单个每日/每周查询,甚至是不再运行的查询,但每次数据更改时索引仍然必须保持最新.

对于高流量表,这是十几次/秒,我想要消除压缩数据更新的索引,同时只提供微小的改进.

解决方法

查看用户搜索/扫描/查找的数量以及 sys.dm_db_index_usage_stats中的最后一次用户搜索/扫描/查找.这些统计信息在服务器启动时重置,因此您必须在服务器启动并运行相关的负载后进行检查时间.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...