Печать оператора в процедуре SQL должна влиять на производительность? - PullRequest
10 голосов
/ 11 сентября 2010

Я использую процедуры SQL Server, и у меня есть привычка использовать операторы Print в хранимых процедурах для разграничения кода процедуры.

У меня в БД почти 200-250 процедур. Должно ли печатное заявление влиять на производительность? Я работаю над многопользовательским приложением Windows.

Ответы [ 3 ]

11 голосов
/ 11 сентября 2010

Я обнаружил, что при запуске приведенного ниже на моем рабочем столе комментирование печати сбило примерно на 15 секунд время выполнения, а это означает, что в моем простом тесте среднее воздействие составляло 15 мкс.RAISERROR WITH NOWAIT добавил в среднем чуть более чем вдвое больше.

DECLARE @date DATETIME2

DECLARE 
  @count INT

SET @count = 1

SET @date = SYSUTCDATETIME()

WHILE @count < 1000000
BEGIN
--RAISERROR ('%d',0,1, @count) WITH NOWAIT
--PRINT @count
  SET @count = @count + 1
END

SELECT DATEDIFF(MICROSECOND, @date, SYSUTCDATETIME()) / 1000000. 
5 голосов
/ 11 сентября 2010

Несколько операторов PRINT окажут незначительное влияние на производительность - однако PRINT s в циклах, которые выполняются много тысяч раз, вполне могут вызвать проблемы с производительностью.

Маловероятно, что еслиу вас возникают проблемы с производительностью при выполнении запросов, причиной которых является PRINT, однако, если сомневаетесь, попробуйте несколько экспериментов!

0 голосов
/ 11 сентября 2010

По существу, есть дополнительные накладные расходы, введенные в общую производительность вашего данного процесса, потому что вы просите SQL Server передать вывод клиенту , что вы бы не поступили иначе (т.е. без использования оператора PRINT).

Количественная оценка дополнительных накладных расходов, с точки зрения их влияния на общую производительность, будет зависеть от того, сколько дополнительных накладных расходов вы применяете.

Другими словами, иди и проверь это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...