/ / Qual è l'utilizzo del piano di esecuzione in SQL Server? - sql-server, sql-execution-plan

Qual è l'utilizzo del piano di esecuzione in SQL Server? - sql-server, sql-execution-plan

Qual è l'utilizzo del piano di esecuzione in SQL Server? Quando possono questi piani aiutarmi?

risposte:

1 per risposta № 1

Quando tutte le tue domande vanno tutte veloci, tutto va beneil mondo e i piani di esecuzione non hanno molta importanza, tuttavia, quando qualcosa è lento, sono molto importanti e vengono utilizzati principalmente per ottimizzare (velocizzare) l'SQL lento. Senza piani di esecuzione, dovresti solo indovinare a cosa cambiare per rendere il tuo SQL più veloce.

Ecco il modo più semplice in cui possono aiutarti. Effettua una query lenta e fai quanto segue in una finestra di query di SQL Server Management Studio:

1) esegui il comando:

SET SHOWPLAN_ALL ON

2) esegui la tua query lenta

3) la tua query non verrà eseguita, ma verrà restituito il piano di esecuzione.

4) guarda attraverso il PhysicalOp colonna di output per la parola SCAN all'interno di qualsiasi testo in questa colonna, questo è generalmente la parte della query che causa ilrallenta. Analizza i tuoi join e l'utilizzo dell'indice in relazione a questa riga dell'output e, se riesci ad eliminare la scansione, di solito aumenterai la velocità della query.

Ci sono delle colonne utili (TotalSubTreeCost, ecc.) Nell'output, le acquisirai familiarità man mano che imparerai a leggere i piani di esecuzione e ad accordare le tue query lente.


1 per risposta № 2

Quando è necessario eseguire il profiling delle prestazioni su una query specifica.

Dai un'occhiata a SQL Server Query Execution Plan Analysis

Quando arriva il momento di analizzare il performance diuna query specifica, uno dei migliori metodi è quello di visualizzare il interrogare il piano di esecuzione. Una domanda piano di esecuzione delinea come l'SQL L'ottimizzatore di query del server è stato effettivamente eseguito (o verrà eseguito) una query specifica. Questo informazione se molto preziosa quando arriva il momento di scoprire perché uno specifico la query è in esecuzione lenta.


1 per risposta № 3

È utile per identificare dove sono i colli di bottigliasi verificano in query a lunga esecuzione. È possibile ottenere alcuni miglioramenti delle prestazioni piuttosto impressionanti semplicemente sapendo come il server esegue la query complessa.

Se ricordo bene, identifica anche i buoni candidati per l'indicizzazione, che è un altro modo per aumentare le prestazioni.


1 per risposta № 4

Questi piani descrivono come funziona SQL Servereseguendo la tua query. È il risultato di un algoritmo basato sui costi da parte di SQL Server Query Optimizer, che fornisce un piano per come arrivare al risultato finale nel modo migliore possibile.

È utile perché ti mostrerà dove viene speso il tempo nella query, se gli indici sono usati o meno, quale tipo di processo viene fatto su quegli indici (scansione, ricerca) ecc.

Quindi se hai una query poco performante, lail piano di esecuzione evidenzierà quali sono le parti più costose e ti consentirà di vedere quali esigenze devono essere ottimizzate (ad esempio potrebbe essere un indice mancante, potrebbe essere una query scritta in modo inefficiente risultante in una scansione dell'indice anziché in una ricerca).