我有一个 Web 应用程序当前对某些用户超时,但是当我自己运行它时,它可以快速运行(< 5 秒),甚至在用户坐着等待他们的查询返回的同时运行它。
我正在运行 SQL Server 2008 Std(不是 R2)。ASP.NET 4.0,页面上有一些网格视图和本地报表查看器。所有查询都包含在存储过程中。
sp_whoisactive 显示其查询的 CPU 和读取非常高。45k CPU,3000 万次读取,815 次物理读取。没有阻塞会话。
我什至绝望地重新启动了 sql server 服务,但用户仍然遇到问题,他们先运行它,这让我相信这不是参数嗅探问题。
我能想到的唯一一件事是查询正在将一堆数据选择到临时表中,并且 tempDB 在本地硬盘驱动器上而不是我们的 NAS 上。它已经在我的清单上进行更改。
有人有什么建议吗?