2010-09-11 54 views

回答

10

我在桌面上運行下面的代碼時發現,註釋掉打印後的執行時間大約減少了15秒,這意味着在我的簡單測試中平均衝擊爲15μs。 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. 
+0

剛剛嘗試過這個查詢,我總共用了17秒的「print @count」,和2,2秒的打印評論 – Shide 2014-06-26 10:03:14

5

少數幾條PRINT語句對於執行數千次循環的性能會產生微不足道的影響 - PRINT s但是,這可能會導致性能問題。

如果您的查詢遇到性能問題,那麼PRINT就是罪魁禍首 - 不過,如果有疑問,請嘗試一些實驗!

0

本質上說是一種額外開銷介紹給您的特定進程的整體的性能,因爲你問SQL Server來通輸出到客戶端,你不會否則做(即不使用的PRINT語句)。

從額定開銷的角度來量化額外開銷會對整體性能產生影響,這取決於您正在應用的額外開銷的多少。

換句話說,去測試一下吧。

相關問題