A relációs adatbázis lekérdezési teljesítményének fokozása

Számos ügyfél teljesítményproblémákat tapasztal az adattárház-alkalmazásokkal. Egyes esetekben az Oracle Analytics által generált SQL-lekérdezések elemzése bonyolult lehet. Ez a témakör útmutatást ad az elemzéshez, valamint az Oracle Analytics által létrehozott SQL-lekérdezésekből eredő teljesítményproblémák minimalizálásához.

Nem foglalkozik a hálózattal, a böngészővel vagy a kimutatásbemutatóval kapcsolatos problémák miatti teljesítményproblémákkal.

Az Oracle Analytics lekérdezési naplójának elemzése (3. naplózási szint szükséges)

A napló helyével vagy a tartalmának megértésével kapcsolatos információkért lásd: A lekérdezési naplók összegyűjtése és elemzése.

  1. Hasonlítsa össze a lekérdezés által az Oracle Analytics rendszerben eltöltött időt az adatbázisban eltöltött idővel, vagyis vesse össze a válaszidőt a fizikai lekérdezési időtartammal. Általában az Oracle Analytics szolgáltatásban eltöltött idő nem több néhány másodpercnél.
  2. Ha a válaszidő több mint néhány másodperc, elemezze az Oracle Analytics egyes lépéseit ennek okának megkereséséhez (5. naplózási szint szükséges).

A fizikai SQL-lekérdezés elemzése

  1. Ellenőrizze, hogy a lekérdezésben szereplő összes tábla szükséges-e. Keressen olyan táblákat, amelyek össze vannak kapcsolva, de nem szerepelnek a SELECT utasításrészben, és amelyekre nincs alkalmazva szűrő (valódi szűrők, nem összekapcsolási feltételek).
  2. Határozza meg, hány fizikai lekérdezés és allekérdezés generálódik. Pontosabban, hányszor olvas be a lekérdezés egy ténytáblát? Tökéletes esetben a lekérdezés egyetlen ténytáblát olvas be, és csak egyszer. Ha egynél több ténytábla van, derítse ki, miért, és nézze meg, el tud-e távolítani néhányat.
  3. Ellenőrizze, hogy vannak-e kizárt oszlopok, nem hozzáadó összesítési szabályok (REPORT_AGGREGATE, count(distinct)...), kiválasztási lépések, allekérdezések a kimutatásban, beállított műveletek (UNION), összegek, részösszegek, többszörös nézetek stb.
  4. Keressen külsős összekapcsolásokat. Derítse ki, honnan származnak, és hogy a terv módosításával eltávolítható-e néhány.

A végrehajtási terv elemzése

Ha az SQL optimalizálása nem elegendő, elemezze a végrehajtási tervet, hogy megtalálja a teljesítményprobléma kiváltó okát. Kérje az adatbázis-adminisztrátor (DBA) segítségét. Jelenleg négy fő módja van a teljesítmény javításának:
  1. Csökkentse a kimeneti-bemeneti hívások mennyiségét az adatelérési útvonalak (indexek) javításával.
  2. Csökkentse a kimeneti-bemeneti hívások mennyiségét a beolvasott adatok mennyiségének csökkentésével. Például áttekintheti az alkalmazott szűrőket vagy az adatmodell szerkezetét (lásd a következő részt).
  3. A párhuzamosság növelése (a nagy táblák olvasásához használt szálak száma).
  4. Javítsa a kimeneti-bemeneti hívások sebességét (infrastruktúra-fejlesztések, memórián belüli adatbázis stb.).

Az adatmodell áttekintése és javítása a beolvasott adatok mennyiségének csökkentéséhez

  1. Hozzon létre összesített táblákat.
  2. Használjon töredékeket.

    Ha például a felhasználók többnyire az aktuális évből, negyedévből vagy hónapból választanak ki adatokat, akkor a tényt két táblázatra oszthatja: aktuális és archívum. Az Oracle adatbázisban particionálást is használhat.

  3. Használjon denormalizálást az összekapcsolások számának csökkentéséhez.
  4. Ossza fel a táblázatokat az oszlopok számának csökkentéséhez.

    A beolvasott adatok mennyisége nem csak az egyes táblázatok sorainak számától függ. A tábla terjedelme az oszlopok számától és méretétől is függ. Például feloszthat egy 500 oszlopos nagy táblát két táblára; az egyik tábla az 50 leggyakrabban használt oszlopot, a másik pedig a fennmaradó 450, ritkán használt oszlopot tartalmazza.

Az Oracle Analytics számos teljesítményproblémája a rossz tervezésből ered, ami nem optimális SQL-lekérdezéseket eredményez. A terv módosításával javíthatja az Oracle Analytics által generált SQL-lekérdezések teljesítményét. Ennek óriási hatása lehet, nemcsak a kimutatások teljesítményére, hanem az adatbázisban felhasznált erőforrások mértékére is.