![来自未知来源的 SQL Server 昂贵选择查询](https://linux22.com/image/583114/%E6%9D%A5%E8%87%AA%E6%9C%AA%E7%9F%A5%E6%9D%A5%E6%BA%90%E7%9A%84%20SQL%20Server%20%E6%98%82%E8%B4%B5%E9%80%89%E6%8B%A9%E6%9F%A5%E8%AF%A2.png)
使用性能仪表板查看按 CPU 使用率划分的查询时,我注意到大量查询,例如“Select * from dbo.sometable”。跟踪这些查询的来源的最佳方法是什么?在我的代码中,我没有对整个表运行选择,但它们继续出现,并且 SQL 表示它们每隔几分钟就会执行一次。这些是实际的查询吗?或者它们可能是作为另一个查询、视图或存储过程的一部分执行的?这些查询是迄今为止在我的服务器上运行的最昂贵的查询。
答案1
如果您有一个自动重建索引的 SQL 作业,这些作业通常会将其 sql_text 显示为SELECT * FROM [table]
或INSERT [TABLE] SELECT * FROM [TABLE]
。
我会进入数据库并运行 sp_who2 或获取更高级的工具来帮助您查找有关正在运行的进程的更多信息。例如,谷歌搜索“sp_whoisactive”。