2010-09-11 12 views

risposta

10

Ho trovato quando eseguivo il seguente sul mio desktop che commentando la stampa ha bussato a circa 15 secondi dal tempo di esecuzione, il che significa che l'impatto medio era 15μs nel mio semplice test. RAISERROR WITH NOWAIT ha aggiunto una media di poco più del doppio di quella.

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

appena provato questa query, ho avuto un totale di – Shide

5

Una manciata di PRINT dichiarazioni avrà un effetto trascurabile sulle prestazioni - PRINT s in loop che vengono eseguiti molte migliaia di volte, però, può ben causare problemi di prestazioni.

È improbabile che se si verificano problemi di prestazioni con le query che PRINT è il colpevole - tuttavia, in caso di dubbio, provare alcuni esperimenti!

0

In sostanza v'è un ulteriore sovraccarico introdotto al complessiva prestazioni del processo di data perché si sta chiedendo di SQL Server per uscita passa al cliente, che non sarebbe fare altrimenti (cioè senza l'uso della dichiarazione PRINT).

Quantificare un sovraccarico aggiuntivo, in termini di impatto che avrà sulle prestazioni generali, dipenderà dalla quantità di costi aggiuntivi che si stanno applicando.

Quindi, in altre parole, vai a provarlo.

Problemi correlati