我在SQL Server 2008 Standard上遇到了特定SELECT
的奇怪情况。
我有一个执行一堆命令的proc。
最后一项任务之一是将select语句的结果插入表中。这个proc是为一个作业的每一步执行的(有20个步骤),只需更改一个参数,商店代码(该公司有20个商店)。
这个insert-select命令通常在2分钟内执行,但有时它会被SOS_SCHEDULER_YIELD
lastwaittype卡住并永远挂起......直到我终止进程。之后,如果我执行相同的命令,它将在正常的2分钟内执行。
我注意到CPU的使用率为99%或1%,或者是否有其他进程同时执行并不重要。我没有发现这些事件的任何模式。它有时会发生(几乎每天都有一两步)。
有没有人经历过这个?我不知道该怎么办;如果它在SOS_SCHEDULER_YIELD
中挂起了很长时间,我就找到了一个杀死该进程并再次执行它的工作,但是我希望有一个解决方案。
感谢。