У меня есть запрос, который часто выполняется за доли секунды (~ 200 мс).
Иногда на выполнение требуется 10-13 секунд. Делать SET STATISTICS TIME ON
это показывает:
SQL Server Execution Times:
CPU time = 231 ms, elapsed time = 13772 ms.
Это единственное, что активно в этом экземпляре базы данных. Кроме того, запрос sys.dm_os_waiting_tasks
он показывает, что все задачи ожидают CXPACKET, но все они ждут друг друга, и нет задач, которые не ожидали бы.
0x0000000003D81048 54 28 4569 CXPACKET 0x000000021F3513B0 0x00000001F18CE088 54 39 exchangeEvent id=Pipe13f667850 WaitType=e_waitPipeGetRow nodeId=13
0x00000001F18CE088 54 39 4569 CXPACKET 0x0000000209290080 0x00000000040BF048 54 30 exchangeEvent id=Pipe12d828cd0 WaitType=e_waitPipeNewRow nodeId=13
0x00000001F18CE2C8 54 24 8240 CXPACKET 0x00000001318BBBC0 0x000000000409A988 54 29 exchangeEvent id=Pipe1319daba0 WaitType=e_waitPipeGetRow nodeId=11
0x00000001F18CE748 54 30 8236 CXPACKET 0x00000001F6CFF960 0x000000021D1182C8 54 21 exchangeEvent id=Pipeea331060 WaitType=e_waitPipeGetRow nodeId=6
0x000000000409A988 54 29 8243 CXPACKET 0x00000001F5F373B0 0x00000001F18CE088 54 39 exchangeEvent id=Port8025e600 WaitType=e_waitPortClose nodeId=13
0x000000021D1182C8 54 21 8241 CXPACKET 0x00000001FA1B5BC0 0x000000000409A988 54 29 exchangeEvent id=Pipe1f5e6cee0 WaitType=e_waitPipeGetRow nodeId=11
0x000000021D118748 54 25 8236 CXPACKET 0x00000001E4D71960 0x000000021D1182C8 54 21 exchangeEvent id=Pipe12d890a00 WaitType=e_waitPipeGetRow nodeId=6
0x00000000040B4E08 54 0 8236 CXPACKET 0x00000001E9206890 0x000000021D118748 54 25 exchangeEvent id=Pipe1ee39e800 WaitType=e_waitPipeGetRow nodeId=1
0x00000000040B4E08 54 0 8236 CXPACKET 0x00000001E9206890 0x000000013F684508 54 27 exchangeEvent id=Pipe1ee39e800 WaitType=e_waitPipeGetRow nodeId=1
0x00000000040B4E08 54 0 8236 CXPACKET 0x00000001E9206890 0x0000000090DB0BC8 54 32 exchangeEvent id=Pipe1ee39e800 WaitType=e_waitPipeGetRow nodeId=1
0x00000000040B4E08 54 0 8236 CXPACKET 0x00000001E9206890 0x00000000A5800508 54 31 exchangeEvent id=Pipe1ee39e800 WaitType=e_waitPipeGetRow nodeId=1
0x00000000040B4E08 54 0 8236 CXPACKET 0x00000001E9206890 0x00000001F195E508 54 28 exchangeEvent id=Pipe1ee39e800 WaitType=e_waitPipeGetRow nodeId=1
0x00000000040B4E08 54 0 8236 CXPACKET 0x00000001E9206890 0x0000000083E90BC8 54 26 exchangeEvent id=Pipe1ee39e800 WaitType=e_waitPipeGetRow nodeId=1
0x00000000040B4E08 54 0 8236 CXPACKET 0x00000001E9206890 0x00000001E7A32748 54 29 exchangeEvent id=Pipe1ee39e800 WaitType=e_waitPipeGetRow nodeId=1
0x00000000040B4E08 54 0 8236 CXPACKET 0x00000001E9206890 0x00000001F18CE748 54 30 exchangeEvent id=Pipe1ee39e800 WaitType=e_waitPipeGetRow nodeId=1
0x00000000040B4BC8 54 32 8242 CXPACKET 0x00000001EF9C53B0 0x00000001F18CE088 54 39 exchangeEvent id=Port8025e600 WaitType=e_waitPortClose nodeId=13
0x00000001E7A322C8 54 18 8241 CXPACKET 0x0000000221DC3BC0 0x000000000409A988 54 29 exchangeEvent id=Pipe1e5a45ad0 WaitType=e_waitPipeGetRow nodeId=11
0x00000001E7A32748 54 29 8236 CXPACKET 0x000000021CEE9960 0x000000021D1182C8 54 21 exchangeEvent id=Pipe1ecd3a5c0 WaitType=e_waitPipeGetRow nodeId=6
0x00000000040BF048 54 30 4569 CXPACKET 0x000000012FA3C290 0x000000021D1182C8 54 21 exchangeEvent id=Pipe131a606b0 WaitType=e_waitPipeNewRow nodeId=11
0x00000000040BF4C8 54 22 8240 CXPACKET 0x00000001F50D3BC0 0x000000000409A988 54 29 exchangeEvent id=Pipe1319daac0 WaitType=e_waitPipeGetRow nodeId=11
0x0000000090DB0BC8 54 32 8236 CXPACKET 0x00000001E67D7960 0x000000021D1182C8 54 21 exchangeEvent id=Pipe1eed8c5b0 WaitType=e_waitPipeGetRow nodeId=6
0x00000000041E8988 54 27 8243 CXPACKET 0x00000000A55573B0 0x00000001F18CE088 54 39 exchangeEvent id=Port8025e600 WaitType=e_waitPortClose nodeId=13
0x000000013F684088 54 17 8241 CXPACKET 0x00000001FA8FFBC0 0x000000000409A988 54 29 exchangeEvent id=Pipe1319db030 WaitType=e_waitPipeGetRow nodeId=11
0x000000013F684508 54 27 8236 CXPACKET 0x00000001E9309960 0x000000021D1182C8 54 21 exchangeEvent id=Pipe1ecd3b600 WaitType=e_waitPipeGetRow nodeId=6
0x0000000004203048 54 26 8235 CXPACKET 0x00000001007FE290 0x000000021D1182C8 54 21 exchangeEvent id=Pipe202f84ea0 WaitType=e_waitPipeNewRow nodeId=11
0x00000000A5800088 54 19 8241 CXPACKET 0x00000001F1DD5BC0 0x000000000409A988 54 29 exchangeEvent id=Pipe12ed0b0e0 WaitType=e_waitPipeGetRow nodeId=11
0x00000000A5800508 54 31 8236 CXPACKET 0x00000001F3D2F960 0x000000021D1182C8 54 21 exchangeEvent id=Pipea2b3a570 WaitType=e_waitPipeGetRow nodeId=6
0x000000000421C988 54 25 8243 CXPACKET 0x00000001F345B3B0 0x00000001F18CE088 54 39 exchangeEvent id=Port8025e600 WaitType=e_waitPortClose nodeId=13
0x00000001F195E088 54 23 8241 CXPACKET 0x00000001EA6E3BC0 0x000000000409A988 54 29 exchangeEvent id=Pipe1f3c22f70 WaitType=e_waitPipeGetRow nodeId=11
0x00000001F195E508 54 28 8236 CXPACKET 0x00000001F4945960 0x000000021D1182C8 54 21 exchangeEvent id=Pipea2b3a400 WaitType=e_waitPipeGetRow nodeId=6
0x0000000083E902C8 54 31 8242 CXPACKET 0x00000000E834D3B0 0x00000001F18CE088 54 39 exchangeEvent id=Port8025e600 WaitType=e_waitPortClose nodeId=13
0x0000000083E90748 54 20 8241 CXPACKET 0x00000001E7A23BC0 0x000000000409A988 54 29 exchangeEvent id=Pipe12ed0b220 WaitType=e_waitPipeGetRow nodeId=11
0x0000000083E90BC8 54 26 8236 CXPACKET 0x00000001F0C6B960 0x000000021D1182C8 54 21 exchangeEvent id=Pipe1301e64a0 WaitType=e_waitPipeGetRow nodeId=6
Я рву здесь волосы и подозреваю, что это связано с конфигурацией машины, а не с самим запросом. Это является делает много соединений в запросе, но ничего такого, что должно вызывать такую разницу во времени выполнения. План всегда один и тот же.
Есть ли что-нибудь, что я могу наблюдать в мониторе производительности или аналогичном, что могло бы дать мне ключ к пониманию того, что иногда задерживает выполнение?