Tabulka s 50 miliony radku a dotazy, ktere prohledavaji vsechny. Partitioning rozreze tabulku na mensi kusy a Oracle prohledava jen relevantni partice. Na nasich projektech je to jedna z nejucinnejsich optimalizaci.
Range Partitioning¶
Nejcastejsi typ pro casove rady. Tabulka objednavek partitionovana po mesicich — dotaz na objednavky z ledna prohledava jen jednu partici z dvanacti. Partition pruning eliminuje 11/12 dat automaticky.
Sprava partici¶
Mesicni partice: automaticke vyvareni novych (INTERVAL partitioning v 11g). Archivace starych: ALTER TABLE DROP PARTITION — okamzite, bez DELETE FROM. Presun starych partici na levnejsi storage (ILM).
Lokalni vs. globalni indexy¶
Lokalni indexy — jeden index per partice. Operace na partici (DROP, MOVE) neovlivni indexy jinych partici. Globalni indexy — pres vsechny partice. Lepsi pro dotazy bez partitioning klice, ale DROP PARTITION invaliduje globalni index. Pro nase pouziti: lokalni indexy.
Performance dopad¶
Dotaz na mesicni data: z 45 sekund na 0.8 sekundy. Full table scan eliminovan. Nocni batch na nove data: bezi jen nad posledni partici. Statistiky: DBMS_STATS per partice misto cele tabulky — rychlejsi a presnejsi.
Kdy pouzit partitioning¶
Tabulky nad 10M radku s casovym rozmerem. Dotazy filtrujici podle partitioning klice. Potreba archivace starych dat. Pozor: partitioning je placena Oracle option — overtte licenci.