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