Visual Studio ASP.NET调试在空闲时导致SQL Server高CPU

时间:2017-07-01 20:37:57

标签: asp.net sql-server visual-studio debugging cpu-usage

我在Windows Server 2012上使用SQL Server 2016创建了一个ASP.NET 4项目。这是一个开发环境,我是唯一的用户。当我在IIS8中运行该项目并使用Visual Studio 2015的调试 - > “附加到进程”它连接到我的w3wp进程就好了。但是,在任务管理器中,我可以立即看到进程“SQL Server Windows NT - 64位”跳转到CPU使用率> 20%,即使没有查询也很难。我重复了几次,这肯定与VS调试有关。当我停止调试时,它会回到0%几秒钟,但然后跳回到20%并保持不变。

问题在于,在这种状态下,即使是微不足道的SQL查询也非常慢或产生超时。因此,调试甚至打开任何数据库支持的项目页面几乎是不可能的。

减轻SQL-Server并使网站再次可用的唯一方法是在Visual Studio中关闭整个解决方案。

当一般调试开始时,Visual Studio是否会启动一些(不需要的!)隐藏的SQL调试?如果是这样,我该如何禁用它?

1 个答案:

答案 0 :(得分:0)

这是基于以上评论而编译的答案...

问题在于系统内存不足。这导致使用大量缓慢的虚拟内存,导致系统停止运行。这是一个有效的答案,如果有人遇到这个问题,应该作为将来的说明。

SQL Server被“假定”将内存返回给OS,但实际上它的作用就像一个贪婪的小巨魔。我总是将其设置为使用始终具有至少2GB可用空间的OS。上面的问题是由内存不足引起的。限制其他程序的内存访问或增加可用的系统内存应该可以解决您的问题。