Ho una vista che utilizza 11 outer join e due inner join per creare i dati. Ciò si traduce in oltre 8 milioni di righe. Quando eseguo il conteggio (*) sul tavolo, sono necessari circa 5 minuti. Sono in perdita su come migliorare le prestazioni di questo tavolo. Qualcuno ha qualche suggerimento su dove cominciare? Sembrano essere indici su tutte le colonne che si uniscono (anche se alcuni sono compositi, non sono sicuro se questo fa la differenza ...)Miglioramento delle prestazioni in una vista con un sacco di join
Qualsiasi aiuto apprezzato.
hai esaminato i piani di esecuzione stimati/effettivi? ti diranno se ti manca un indice da qualche parte – dan
l'ho guardato. Non ci sono scansioni di tabelle che occupano un momento significativo. Ci sono molte "partite di hash" che si sommano a scarse prestazioni, ma le partite di hash vengono eseguite solo quando gli indici sono usati corretti? –
un trucco che ho trovato molto utile è quello di rompere una query complessa in subquery, ad es. se hai una query con 11 join in esso - è un duro lavoro per l'ottimizzatore che generalmente non è in grado di considerare più di 4 join contemporaneamente. Vorrei provare a mantenere la query esterna con 4 join per spostare altri join su sottoquery. Mi ha aiutato in alcuni casi – root