LaB*_*cca 6 sql-server profiling
我想要一个在测试我的应用程序时监视sql server的工具.applicatino当然会运行不同的查询.
从工具我想输出如下: - 此查询很慢,因为此字段上缺少索引
而这种信息.
但我希望有一种方法来突出关键数据,例如可能有100个索引丢失,但其中99个会提高0.05%的性能,而其中一个会给查询带来6000%的好处.所以突出热点也很重要.
还需要商业产品(具有全部特征 - 没有限制 - 试用).
F.B*_*ate 11
你并不需要一个工具.我个人使用以下查询来向我展示SQL Server认为它需要的索引,这显示了SQL Server查找索引的频率,估计的改进等...
SELECT user_seeks * avg_total_user_cost * (avg_user_impact * 0.01) AS index_advantage,
migs.last_user_seek,
mid.statement AS 'Database.Schema.Table',
mid.equality_columns,
mid.inequality_columns,
mid.included_columns,
migs.unique_compiles,
migs.user_seeks,
migs.avg_total_user_cost,
migs.avg_user_impact
FROM sys.dm_db_missing_index_group_stats AS migs WITH (NOLOCK)
INNER JOIN sys.dm_db_missing_index_groups AS mig WITH (NOLOCK)
ON migs.group_handle = mig.index_group_handle
INNER JOIN sys.dm_db_missing_index_details AS mid WITH (NOLOCK)
ON mig.index_handle = mid.index_handle
ORDER BY index_advantage DESC;
Run Code Online (Sandbox Code Playgroud)
如果你想识别慢速查询SQL Profiler是你的朋友,只需设置一个持续时间的过滤器,你就可以了.然后通过数据库引擎优化顾问(两者都附带SQL Server)运行此查询.