Oracle
 sql >> Database >  >> RDS >> Oracle

Spiega il punto critico del costo del piano

Oggi stavo lavorando con uno sviluppatore su una query che aveva prestazioni scarse. Questa query era ampia e complessa e inizialmente sembrava uno sforzo scoraggiante per scoprire dove si trova il problema delle prestazioni. Con Explain Plan a volte possiamo utilizzare il costo per ridurre il punto debole delle prestazioni di una query ampia e complessa.

Osservando un piano di spiegazione di questa query, possiamo notare che il suo costo complessivo è piuttosto elevato.

Osservando i dettagli, possiamo vedere che la scansione della tabella FULL (FTS) sulla tabella DETAIL_RECORD ha un costo elevato di 51018. Notare come l'alto costo dell'FTS si propaga nel piano. Tutte le operazioni al di sopra di questo FTS hanno un costo elevato a causa del costo elevato di questo accesso a una singola tabella. L'accesso alla tabella CIMS_POLICIES_TO_PROCESS ha un costo relativamente basso, ma l'operazione HASH JOIN riceve il suo costo elevato solo a causa del costo elevato per accedere alla tabella DETAIL_RECORD.

Il costo complessivo è solo leggermente superiore al costo per accedere a questa tabella. È chiaro che l'FTS in questa tabella è il contributo maggiore al punto dolente dell'analisi di questa query.

Osservando i costi del piano di spiegazione in questo modo, siamo stati in grado di concentrarci molto rapidamente sull'unica area di una query molto complessa che causa il maggior danno alle prestazioni. Senza l'analisi dei costi eseguita qui, determinare quale parte della query di seguito sta causando il problema sarebbe stato molto lavoro.