Quali problemi indica una bobina desiderosa


27

Attualmente in esecuzione su SQL Server 2008 R2

Sto tentando di aumentare le prestazioni di un'istruzione UPDATE. Noto un'operazione Spool desideroso nello showplan che si apre. La mia comprensione delle operazioni di spooling è piuttosto semplice: creano un archivio temporaneo per la tabella durante l'aggiornamento.

So anche che, mentre impediscono tempi di esecuzione molto peggiori, gli spool desiderosi sono spesso indicativi di problemi sottostanti con la struttura della tabella e / o le istruzioni della query.

La mia domanda è piuttosto semplice: quando vedi uno Spool desideroso nel tuo piano di query, quali problemi cerchi per prima cosa di affrontare?

Analizzerò ogni parte del nostro sistema per aumentare le prestazioni - sto solo cercando una guida su dove dovrei iniziare.


Puoi mostrare il piano? Le bobine possono significare molte cose diverse.
usr

E un altro paio di casi in cui questo potrebbe apparire in un UPDATEcaso è se la tabella ha una chiave esterna autoreferenziale o accede a UDF che accedono ai dati o non sono associati allo schema
Martin Smith,

Risposte:


18

Sto tentando di aumentare le prestazioni di un'istruzione UPDATE. Noto un'operazione Spool desideroso nello showplan che si apre.

Spool desiderosi possono essere aggiunti per una serie di motivi, tra cui la protezione di Halloween , o per ottimizzare l'I / O quando si mantengono gli indici non cluster .

Senza vedere (anche un'immagine del) piano di esecuzione, è difficile essere certi di quali di questi scenari potrebbero essere applicati nel tuo caso particolare. Se la sensibilità dei dati è un problema, prendere in considerazione il caricamento di una versione anonima del piano per l'analisi utilizzando SentryOne Plan Explorer .

È possibile che Eager Spool non sia la cosa su cui dovresti concentrarti comunque; molti fattori influenzano le prestazioni effettive delle query che modificano i dati. Se stai basando i tuoi sforzi di ottimizzazione sul costo percentuale stimato mostrato per l'operatore Eager Spool, tieni presente che tali stime sono generate utilizzando un modello che non è destinato a corrispondere alle capacità della tua particolare configurazione hardware.


2

A volte la bobina desiderosa può essere evitata quando sono presenti altri operatori di blocco, ad esempio. Quindi è una buona idea assicurarsi che i dati siano già ordinati al momento in cui raggiungono quella fase. (forse mancano gli indici?)

Se è lì per la protezione di Halloween, come hanno detto gli altri ragazzi, c'è poco che puoi fare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.