Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

IMPOSTARE NESSUN CONTO sull'utilizzo

Ok ora ho fatto la mia ricerca, ecco l'affare:

Nel protocollo TDS, SET NOCOUNT ON salva solo 9 byte per query mentre il testo "SET NOCOUNT ON" è di per sé ben 14 byte. Pensavo che 123 row(s) affected è stato restituito dal server in testo normale in un pacchetto di rete separato, ma non è così. Si tratta infatti di una piccola struttura chiamata DONE_IN_PROC incorporato nella risposta. Non è un pacchetto di rete separato, quindi non vengono sprecati viaggi di andata e ritorno.

Penso che puoi attenerti al comportamento di conteggio predefinito quasi sempre senza preoccuparti delle prestazioni. Tuttavia, ci sono alcuni casi in cui il calcolo del numero di righe in anticipo potrebbe influire sulle prestazioni, ad esempio un cursore solo in avanti. In tal caso NOCOUNT potrebbe essere una necessità. A parte questo, non c'è assolutamente bisogno di seguire il motto "usa NOCOUNT ove possibile".

Ecco un'analisi molto dettagliata sull'insignificanza di SET NOCOUNT impostazione:http://daleburnett.com/2014/01/everything-ever-wanted-know-set-nocount/