sql >> Databáze >  >> RDS >> Sqlserver

Ovlivňuje objednávka Sql JOIN výkon?

Pořadí spojení na serveru SQL2008R2 nepochybně ovlivňuje výkon dotazů, zejména v dotazech, kde existuje velký počet spojení tabulek s klauzulemi aplikovanými na více tabulek.

Přestože se objednávka spojení změní v optimalizaci, optimalizátor nezkouší všechny možné objednávky spojení. Zastaví se, když najde to, co považuje za funkční řešení, protože samotná optimalizace využívá vzácné zdroje.

Viděli jsme, že dotazy, které fungovaly jako psi (1 minuta + doba provedení), se snížily na méně než sekundu pouze změnou pořadí spojovacích výrazů. Upozorňujeme však, že se jedná o dotazy s 12 až 20 spojeními a klauzulemi where na několika tabulkách.

Trik je nastavit objednávku tak, aby pomohla optimalizátoru dotazů zjistit, co dává smysl. Můžete použít Force Order, ale to může být příliš rigidní. Pokuste se ujistit, že vaše objednávka spojení začíná tabulkami, kde se nejvíce sníží data prostřednictvím klauzulí where.



  1. jak udělat funkci pro vrácení typu řádku z tabulky v pl/sql?

  2. Zjistěte, do kterého čtvrtletí v Oracle patří datum

  3. Upravit dotaz materializovaného pohledu

  4. Jak nainstalovat MySQL pomocí phpMyAdmin na Ubuntu 14.04