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

Je globálně rozdělený index lepší (rychlejší) než nerozdělený index?

Jsem si jistý, že jste ve svém výzkumu našli tuto referenci - Dělené tabulky a indexy . Nicméně dávám na něj odkaz, pokud by to někoho zajímalo, je to velmi dobrý materiál o dělení.

Přímo k věci – Dělený index pouze rozloží index na kousky (16 ve vaší situaci) a rozloží data v závislosti na jejich hashovaném rozdělovacím klíči. Když jej chcete použít, Oracle „vypočítá“ hash klíče a určí, ve které sekci pokračovat v hledání.

Vzhledem k tomu, jak funguje vyhledávání indexů, na opravdu velkých datech si myslím, že je lepší zvolit rozdělený index, aby se snížil strom indexu, který procházíte (běžný index). Opravdu záleží na datech, která jsou v tabulce (jak je složen běžný indexový strom) a hashují a přímo skočí do nižšího uzlu rychleji než běžný strom prochází z počátečního uzlu.

Konečně si musíte být více jisti výsledky testů. Pokud jedna technika poskytuje u vašich přesných dat lepší výsledky než jiná, nebojte se ji implementovat.




  1. Ukládání hodnot s apostrofy do databáze

  2. Dotaz vrací přesný počet řádků

  3. Chyba příkazu UPDATE - MySQLdb/Python

  4. jak změnit oddělovač v sqlplus v oracle 11g