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

Skryté funkce v Oracle

"Úplné skenování tabulek není vždy špatné. Indexy nejsou vždy dobré."

Přístupová metoda založená na indexu je při čtení řádků méně účinná než úplné prohledávání, když ji měříte z hlediska řádků, ke kterým se přistupuje na jednotku práce (obvykle na logické čtení). Mnoho nástrojů však bude úplné skenování tabulky interpretovat jako známku neefektivity.

Vezměte si příklad, kdy čtete několik stovek faktur z tabulky faktur a hledáte způsob platby v malé vyhledávací tabulce. Použití indexu k prozkoumání vyhledávací tabulky pro každou fakturu pravděpodobně znamená tři nebo čtyři logické IO na fakturu. Úplné prohledání vyhledávací tabulky v rámci přípravy na spojení hash z dat faktury by však pravděpodobně vyžadovalo pouze několik logických čtení a samotné spojení hash by se vyplnilo v paměti téměř bez nákladů.

Nicméně mnoho nástrojů by se na to podívalo a vidělo "skenování celé tabulky" a řeklo by vám, abyste zkusili použít index. Pokud tak učiníte, možná jste právě odladili svůj kód.

Náhodou přílišné spoléhání na indexy, jako ve výše uvedeném příkladu, způsobuje nárůst „poměru zásahů mezipaměti vyrovnávací paměti“. To je důvod, proč je BCHR jako prediktor účinnosti systému většinou nesmysl.



  1. sql dotaz, který vrátí rozdíly mezi dvěma tabulkami

  2. Fyzické replikační mechanismy v PostgreSQL

  3. Integrace ServiceNow se službou Oracle Identity Cloud Service (IDCS)

  4. uložit výsledek postgresql do proměnné bash