SQL Server 2016高空闲CPU和查询速度极慢


10

我安装了大约10天的WinServer2012R2和SQL Server Express 2016进行测试。我是这台机器上的唯一用户。从SQL Server 2005还原的.bak数据库约为250MB,不会出现任何问题。重新启动计算机后,进程“ SQL Server NT-64位”使用0%CPU。

在几分钟或几小时后,通过“ SQL Server NT-64位”的SSMS CPU使用情况进行的一些简单查询(无更新/插入!)突然跳到〜15%并保持在那里,即使处于空闲状态也是如此。从那时起,通常不到一秒钟的查询突然需要2分钟。在实际查询期间,CPU使用率不会增加。在这种状态下,服务器实际上变得不可用。

仅连接SQL Server Profiler会花费30秒以上的时间。除了我自己的查询外,我只看到很少的来自SQLServerCEIP / SQLTELEMETRY的查询,每分钟约3个。

重新启动SQL Server无法解决它。CPU使用率跃升至约15%。即使数小时后,SQL Server也无法恢复。仅重新引导整个计算机即可解决此问题。

由于这是“开箱即用”的安装,因此只有一个小的数据库,几乎没有查询,只有我作为用户,并且可能没有锁,许多有关常规SQL-Server性能问题的文章都谈到了很多不希望做的事情。在这里真的不适用。似乎SQL Server 希望专注于某些内部任务。

这是一个具有2GB RAM和2GHz双Xeon的虚拟机。我也有VS2016,而且速度非常快。没有防病毒软件,甚至没有Windows Defender。在这里已经晚了。我明天将尝试sp_whoisactive。我真的很想知道SQL-Server在那里做什么...在具有1 GB的以前的机器上,相同的数据库在SQLServer2005下运行了10年没有问题...

我不是SQL-Profiler专家。我应该从哪里开始寻找?


可能是错误的安装。考虑重新安装OS和SQL。所有服务包。您可以永远追逐这样的东西。如果问题仍然存在,则可以合理地取消安装。
狗仔队

7
您是否安装了防病毒软件?我将为SQL Server可执行文件以及MDF,NDF和LDF文件添加一个排除项。
伦道夫·韦斯特

1
您是否也在研究节能设置?
伦道夫·韦斯特

我记得如果auto_update_statistics_async打开数据库选项,则与2005年类似。
罗杰·沃尔夫,

尝试使数据库脱机并检查cpu使用情况。如果cpu的使用率没有下降,那么它的sql server数据库引擎问题。
穆罕默德·优萨夫·苏拉里亚

Answers:


3

由于您的CPU使用率较低(并且您的CPU设置很高),因此我将首先检查内存压力。使用SQL Express 2016时,您只能使用1410 MB的内存,但是您的VM只有2GB。给您的VM 1GB更多的内存,看看是否有帮助。您还可以检查SQL Server日志是否正在分页到文件。

如果那不起作用,请尝试将数据库设置LEGACY_CARDINALITY_ESTIMATION设置为ON。参考:在SQL Server 2016中将DB Compatibility Level 130与Old CE一起使用。我们在进行一些升级时遇到了这个问题。结果因每个数据库而异。


同时,我发现启动/停止使用过多内存的其他软件(如Visual Studio)会使问题以可重复的方式恶化。因此,我可以确认这是一个内存问题-SQL-Server在被压缩到太多时会开始分页。
安德烈亚斯·斯蒂德

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.