我安装了大约 10 天的 WinServer2012R2 和 SQL Server Express 2016 用于测试。我是这台机器上唯一的用户。SQL Server 2005 中的 .bak 约为 250MB 的数据库被还原,没有任何问题。重新启动机器后,进程“SQL Server NT - 64 Bit”使用 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 专家。我应该从哪里开始寻找?