Я пытаюсь выяснить, почему SQL Server хранимая процедура медленно выполняется, так что я положил в некоторых сырых таймерами, как это:SQL время выполнения хранимой процедуры тайна
Create Procedure DoStuff
As Begin
Declare @Stopwatch datetime
Set @Stopwatch=GetDate()
Print char(13) + 'Task A'
/* Perform Task A */
Print DateDiff(ms, @Stopwatch, GetDate()); Set @Stopwatch = GetDate()
Print char(13) + 'Task B'
/* Perform Task B */
Print DateDiff(ms, @Stopwatch, GetDate()); Set @Stopwatch = GetDate()
Print char(13) + 'Task C'
-- Perform Task C
Print DateDiff(ms, @Stopwatch, GetDate()); Set @Stopwatch = GetDate()
End
Exec DoStuff
я получаю что-то вроде этого:
Task A 0 Task B 80 Task C 100
Таким образом, я думаю, что для выполнения этой процедуры потребуется 180 мс. Однако для выполнения этой процедуры требуется 3000+ мс; в статистике клиента, я получаю
Client processing time: 12 Total execution time: 3105 Wait time on server replies: 3093
Что составляет дополнительную ~ 2800 мс?