Moderní RDBM, včetně Oracle, optimalizují většinu spojení a dílčích dotazů na stejný plán provádění.
Proto bych pokračoval a napsal váš dotaz způsobem, který je pro vás nejjednodušší, a zaměřil bych se na zajištění toho, že jste své indexy plně optimalizovali.
Pokud zadáte svůj konečný dotaz a schéma databáze, můžeme vám nabídnout podrobné návrhy, včetně informací o potenciálních problémech se zamykáním.
Upravit
Zde je několik obecných tipů, které se vztahují na váš dotaz:
- U spojení se ujistěte, že máte index sloupců, ke kterým se připojujete. Nezapomeňte použít index na spojené sloupce v obou tabulkách. Možná si myslíte, že potřebujete index pouze v jednom směru, ale měli byste indexovat oba, protože někdy databáze určí, že je lepší se připojit opačným směrem.
- U klauzulí WHERE se ujistěte, že máte indexy ve sloupcích uvedených v WHERE.
- Pro vkládání mnoha řádků je nejlepší, když je můžete vložit všechny do jednoho dotazu.
- Pro vkládání do tabulky se seskupeným indexem je nejlepší, když vkládáte s přírůstkovými hodnotami pro seskupený index, aby se nové řádky připojily na konec dat. Tím se zabrání opětovnému sestavení indexu a často se zabrání uzamčení existujících záznamů, což by zpomalilo SELECT dotazy na existující řádky. V zásadě jsou vložky méně bolestivé pro ostatní uživatele systému.