使用性能仪表板查看按 CPU 使用率划分的查询时,我注意到大量查询,例如“Select * from dbo.sometable”。跟踪这些查询的来源的最佳方法是什么?在我的代码中,我没有对整个表运行选择,但它们继续出现,并且 SQL 表示它们每隔几分钟就会执行一次。这些是实际的查询吗?或者它们可能是作为另一个查询、视图或存储过程的一部分执行的?这些查询是迄今为止在我的服务器上运行的最昂贵的查询。
答案1
如果您有一个自动重建索引的 SQL 作业,这些作业通常会将其 sql_text 显示为SELECT * FROM [table]
或INSERT [TABLE] SELECT * FROM [TABLE]
。
我会进入数据库并运行 sp_who2 或获取更高级的工具来帮助您查找有关正在运行的进程的更多信息。例如,谷歌搜索“sp_whoisactive”。