我在 r3.large Amazon EC2 机器上运行 SQL Server 2014 Standard Edition(累积更新 6)实例。我注意到 SQL Server 的 CPU 使用率飙升至 100%,同时几乎不执行任何查询。
查看 SQL Performance Tool,我可以看到大部分时间都在 SQL CLR 函数中丢失了。
这是其中一个操作的屏幕截图: https ://dl.dropboxusercontent.com/u/3098924/Schermata%202015-03-04%20alle%2016.46.17.png
大多数 CLR 函数都在做基本的事情。例如,IsNullOrEmpty 函数返回 String.IsNullOrEmpty() 的结果,但即使是这些函数也需要 1500 到 7000 毫秒才能执行。
如果我接受同样的工作并在我们用于开发的物理盒子上运行它,那么这些调用几乎看不到,因为它们太快了。
有没有人遇到过类似的问题?我想这是由于 EC2 或 VM 造成的,但我真的说不出原因。谢谢!
事实证明,CLR 没有启用,并且由于某种原因,异常没有被捕获,SQL Server 花了大约 15 秒才说 CLR 没有启用,但在此期间实例保持在 100% CPU 和霸占了。
如果有人碰巧遇到同样的问题,您可以通过运行以下命令打开 CLR: