Ladenie výkonu dopytov na relačnú databázu

Mnoho zákazníkov má problémy s výkonom aplikácií dátového skladu. V niektorých prípadoch je analýza dopytov SQL generovaných službou Oracle Analytics zložitá. Táto téma poskytuje inštrukcie, ako analyzovať a minimalizovať problémy s výkonom, ktoré môžu prameniť z dopytov SQL generovaných službou Oracle Analytics.

Táto téma sa nevenuje problémom s výkonom spôsobeným problémami s vašou sieťou, prehľadávačom alebo prezentáciou zostavy.

Analýza protokolu dopytu pre službu Oracle Analytics (vyžaduje sa úroveň protokolu 3)

Informácie o tom, ako nájsť tento protokol alebo ako pochopiť jeho obsah, nájdete v časti Zhromažďovanie a analýza protokolov dopytu.

  1. Porovnajte množstvo času, ktorý dopyt strávi v službe Oracle Analytics, s časom stráveným v databáze, teda čas odozvy s fyzickým trvaním dopytu. Za normálnych okolností čas strávený v službe Oracle Analytics nepresiahne niekoľko sekúnd.
  2. Ak je čas odozvy dlhší ako niekoľko sekúnd, analyzujte jednotlivé kroky vykonané v službe Oracle Analytics, aby ste našli príčinu (vyžaduje sa úroveň protokolu 5).

Analýza fyzického dopytu SQL

  1. Skontrolujte, či sú všetky tabuľky zahrnuté v dopyte potrebné. Vyhľadajte všetky tabuľky, ktoré sú spojené, ale nie sú zahrnuté v klauzule SELECT a nemajú použité žiadne filtre (skutočné filtre, nie podmienky spojenia).
  2. Určite, koľko fyzických dopytov a poddopytov sa generuje. Presnejšie, koľkokrát dopyt číta tabuľku faktov? V ideálnom prípade dopyt číta jednu tabuľku faktov a iba raz. Ak existuje viac ako jedna tabuľka faktov, zistite dôvod a určite, či môžete niektoré odobrať.
  3. Skontrolujte vylúčené stĺpce, neaditívne pravidlá agregácie (REPORT_AGGREGATE, count(distinct)...), kroky výberu, poddopyt v zostave, nastavené operátory (UNION), súčty, medzisúčty, viaceré zobrazenia a podobne.
  4. Skontrolujte prípadné vonkajšie spojenia. Zistite, odkiaľ pochádzajú a či môžete niektoré odobrať zmenou návrhu.

Analýza plánu vykonania

Ak optimalizácia dopytu SQL nestačí, analyzujte plán vykonania, aby ste našli hlavnú príčinu problému s výkonom. Požiadajte administrátora databázy, aby vám pomohol. V tomto momente existujú štyri hlavné spôsoby, ako zlepšiť výkon:
  1. Obmedzte počet vstupných a výstupných volaní zlepšením ciest prístupu k dátam (indexov).
  2. Obmedzte počet vstupných a výstupných volaní znížením objemu čítaných dát. Môžete napríklad skontrolovať použité filtre alebo štruktúru dátového modelu (pozrite si ďalšiu časť).
  3. Zvýšte paralelizmus (počet vlákien používaných na čítanie veľkých tabuliek).
  4. Zvýšte rýchlosť vstupných a výstupných volaní (zlepšenia infraštruktúry, databázy v pamäti a podobne).

Kontrola a zlepšenie dátového modelu na zníženie objemu čítaných dát

  1. Vytvárajte agregované tabuľky.
  2. Používajte fragmentáciu.

    Ak napríklad používatelia väčšinou vyberajú dáta z aktuálneho roka, štvrťroka alebo mesiaca, môžete fakt rozdeliť do dvoch tabuliek: aktuálnej a archívnej. V databáze Oracle môžete používať aj delenie na partície.

  3. Používajte denormalizáciu na zníženie počtu spojení.
  4. Rozdelením tabuliek znížte počet stĺpcov.

    Objem čítaných dát nezávisí len od počtu riadkov v každej tabuľke. Objem tabuľky závisí aj od počtu a veľkosti jej stĺpcov. Môžete napríklad rozdeliť veľkú tabuľku s 500 stĺpcami na dve tabuľky – jednu tabuľku s 50 najčastejšie používanými stĺpcami a druhú so zvyšnými 450 stĺpcami, ktoré sa používajú len zriedka.

Mnoho problémov s výkonom v službe Oracle Analytics pramení zo zlého návrhu, pretože to spôsobuje generovanie dopytov SQL, ktoré nie sú úplne optimálne. Úpravou návrhu môžete zlepšiť dopyty SQL, ktoré služba Oracle Analytics generuje. Môže to mať obrovský vplyv nielen na výkon zostáv, ale aj na množstvo prostriedkov využívaných v databáze.