sql >> Databáze >  >> RDS >> Oracle

Výkon:Poddotaz nebo Spojení

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.


  1. Správa indexů SQL Server Použití Správce indexů pro SQL Server

  2. Zábava s kompresí (columnstore) na velmi velkém stole – část 3

  3. Android Studio 3.0 canary 1 :Chyba syntaxe SQL

  4. vyhnout se souběžnému vkládání více stejných id do mysql