Tabulka s 50 miliony radku a dotazy, které prohledávají vsechny. Partitioning rozreze tabulku na mensi kusy a Oracle prohledava jen relevantní partice. Na našich projektech je to jedna z nejucinnejsich optimalizaci.
Range Partitioning¶
Nejčastější typ pro casove rady. Tabulka objednávek partitionovana po měsících — dotaz na objednávky z ledna prohledava jen jednu partici z dvanácti. Partition pruning eliminuje 11/12 dat automaticky.
Sprava partici¶
Měsíční partice: automaticke vyvareni nových (INTERVAL partitioning v 11g). Archivace starých: ALTER TABLE DROP PARTITION — okamzite, bez DELETE FROM. Přesun starých partici na levnější storage (ILM).
Lokální vs. globální indexy¶
Lokální indexy — jeden index per partice. Operace na partici (DROP, MOVE) neovlivní indexy jiných partici. Globální indexy — pres vsechny partice. Lepsi pro dotazy bez partitioning klíče, ale DROP PARTITION invaliduje globální index. Pro naše použití: lokální indexy.
Performance dopad¶
Dotaz na měsíční data: z 45 sekund na 0.8 sekundy. Full table scan eliminovan. Noční batch na nove data: běží jen nad poslední partici. Statistiky: DBMS_STATS per partice misto celé tabulky — rychlejsi a přesnější.
Kdy pouzit partitioning¶
Tabulky nad 10M radku s casovym rozmerem. Dotazy filtrujici podle partitioning klíče. Potřeba archivace starých dat. Pozor: partitioning je placena Oracle option — overtte licenci.
Potřebujete pomoc s implementací?
Naši experti vám pomohou s návrhem, implementací i provozem. Od architektury po produkci.
Kontaktujte nás