Vyladění výkonu relačních databázových dotazů

Mnoho zákazníků má problémy s výkonem aplikací datových skladů, proto vám přinášíme několik obecných pokynů, jak můžete analyzovat a zlepšit výkon sestavy v aplikaci Oracle Analytics. V některých případech jsou dotazy SQL generované službou Oracle Analytics složité na analýzu. V tomto tématu je popsáno, jak analyzovat a minimalizovat problémy s výkonem, které mohou vznikat v důsledku dotazů SQL generovaných službou Oracle Analytics.

Toto téma se nezabývá problémy s výkonem způsobenými problémy se sítí, prohlížečem nebo prezentací sestavy.

Analýza protokolu dotazů pro Oracle Analytics (vyžadována úroveň protokolu 3)

Informace o tom, jak tento protokol najít nebo jak porozumět jeho obsahu, naleznete v části Shromažďování a analýza protokolů dotazů.

  1. Porovnejte dobu, kterou váš dotaz stráví ve službě Oracle Analytics, s dobou strávenou v databázi, tj. čas odezvy versus doba trvání fyzického dotazu. Doba strávená v aplikaci Oracle Analytics obvykle nepřesahuje několik sekund.
  2. Pokud je doba odezvy delší než několik sekund, analyzujte jednotlivé kroky provedené v aplikaci Oracle Analytics, abyste zjistili příčinu (vyžadována úroveň protokolu 5).

Analýza fyzického dotazu SQL

  1. Zkontrolujte, zda jsou všechny tabulky zahrnuté do dotazu nezbytné. Vyhledejte všechny tabulky, které jsou spojeny, ale nejsou zahrnuty v klauzuli SELECT a nejsou na ně použity žádné filtry (skutečné filtry, nikoli podmínky spojení).
  2. Určete, kolik fyzických dotazů a poddotazů je generováno. Přesněji, kolikrát dotaz načte tabulku faktů. V ideálním světě dotaz načte jedinou tabulku faktů, a to pouze jednou. Pokud je tabulek faktů více, zjistěte, proč tomu tak je, a zjistěte, zda je možné některé z nich odstranit.
  3. Zkontrolujte vyloučené sloupce, neaditivní agregační pravidla (REPORT_AGGREGATE, count(distinct)...), kroky výběru, dílčí dotazy v sestavě, operátory množiny (UNION), součty, mezisoučty, vícenásobná zobrazení atd.
  4. Zkontrolujte případná vnější spojení. Zjistěte, odkud pocházejí a zda je možné některá z nich odebrat změnou návrhu.

Analýza plánu spuštění

Pokud optimalizace SQL nestačí, analyzujte plán spuštění, abyste zjistili hlavní příčinu problému s výkonem. Požádejte o pomoc správce databáze. V tomto bodě lze zlepšit výkonnost čtyřmi hlavními způsoby:
  1. Snížení objemu operací vstupů a výstupů zlepšením přístupových cest k datům (indexy).
  2. Snížení objemu operací vstupů a výstupů snížením objemu načítaných dat. Můžete například zkontrolovat použité filtry nebo strukturu datového modelu (viz další část).
  3. Zvýšení paralelismu (počtu vláken použitých ke čtení velkých tabulek).
  4. Zlepšení rychlosti operací vstupů a výstupů (zlepšení infrastruktury, databáze v paměti atd.).

Přezkoumání a vylepšení datového modelu s cílem snížit objem načítaných dat

  1. Vytvořte agregované tabulky.
  2. Použijte fragmentaci.

    Pokud například uživatelé většinou vybírají data z aktuálního roku, čtvrtletí nebo měsíce, můžete tento fakt rozdělit do dvou tabulek: aktuální a archivní. V databázi Oracle můžete také použít rozdělení na oddíly.

  3. Použijte denormalizaci (pro snížení počtu spojení).
  4. Rozdělte tabulky a snižte počet sloupců.

    Objem načtených dat nezávisí pouze na počtu řádků v jednotlivých tabulkách. Objem tabulky závisí také na počtu a velikosti jejích sloupců. Například velkou tabulku s 500 sloupci můžete rozdělit do dvou tabulek: jedna tabulka obsahuje 50 nejčastěji používaných sloupců a druhá zbývajících 450 sloupců, které se používají jen zřídka.

Mnoho problémů s výkonem v aplikaci Oracle Analytics má původ ve špatném návrhu, který způsobuje generování neoptimálních dotazů SQL. Úpravou návrhu můžete vylepšit dotazy SQL, které Oracle Analytics generuje. To může mít značný vliv nejen na výkonnost sestav, ale také na množství zdrojů používaných v databázi.