Inicializálási blokkok karbantartása

Ha Data Gateway vagy Remote Data Connector megoldást használ az Oracle Analytics Cloud szolgáltatással, az egyes lekérdezések végrehajtásának időtartama kismértékű többletköltséggel jár.

Kimutatás futtatásakor nem fogja észrevenni a megnövekedett időt, mert az kevesebb, mint 0,3 másodperc. Azonban teljesítménybeli problémákat tapasztalhat, ha sok inicializálási blokkot futtat (a szám a teljesítménykövetelményektől függ), amikor valaki bejelentkezik, mert az inicializálási blokk lekérdezései sorozatosan futnak le. A témakörben módokat javasolunk arra, hogy miként csökkentheti a munkamenet-inicializálási blokkokat.

Az inicializálási blokkok elhalasztott beállításának használata nem oldja meg a problémát, mivel az inicializálási blokkok végrehajtása az első irányítópult-oldal megnyitásakor történik.

Ez akkor jelent problémát, ha az Oracle BI Applications szolgáltatást használja, mert az több mint 200 inicializálási blokkot futtat. Az Oracle Analytics Cloud esetében a teljesítményproblémák elkerülésének legjobb módja az inicializálási blokkok számának csökkentése.

Az Oracle a következő módszereket javasolja a munkamenet-inicializálási blokkok csökkentésére:

  • Tiltsa le az összes inicializálási blokkot, amelyre nincs szüksége.

    Például az Oracle BI Applications szolgáltatásban tiltsa le azokat az inicializálási blokkokat, amelyek olyan Oracle BI Applications-modulokra hivatkoznak, amelyeket már nem használ.

  • A sorrendszabály kivételével egyesítse az összes row_wise inicializálási blokkot, amely ugyanazt a kapcsolatkészletet használja, és ugyanazt az adattípust adja vissza a UNION ALL használatával a lekérdezések között.

    Például:

    Init block 1: query1
    
    Init block 2: query2
    
    Merged init block: query1 union all query2
  • Tiltsa le az összes olyan inicializálási blokkot, amely a dual vagy a W_DUAL_G közül fizikailag kódolt értéket választ ki, és tegye a fizikailag kódolt értéket a megfelelő változó alapértelmezett inicializálójába.
  • Egyesítse a fennmaradó inicializálási blokkokat, amelyek a kettős utasításból választanak ki adatokat egy egyszeres select utasításba.
  • Az Oracle BI Applications ügyfelei számára tiltsa le az Oracle Human Capital Management egyéni attribútumneveinek és értékeinek lekéréséhez használt összes inicializálási blokkot, ha a vonatkozó attribútumot nem használja. (Ha a normál alapértelmezett HIDE érték ezeknek a változóknak az aktuális értéke), vagy ha nem használja az Oracle Human Capital Management alkalmazást az Oracle BI Applications adatforrásaként (az Oracle BI Applications szolgáltatásban száz ilyen inicializálási blokk található):
    HR xxx Attribute yyy
  • Egyesítse az összes fennmaradó inicializálási blokkot, amely nem row_wise, és ugyanazt a kapcsolatkészletet használják. Például:

    1. inicializálási blokk az 1. lekérdezés alapján: select colA from tableA where….

    2. inicializálási blokk a 2. lekérdezés alapján: select colB from tableB where….

    Egy inicializálási blokkba egyesítheti őket egy lekérdezéssel, például:

    Select MAX(colA), MAX(colB) from (
    
    select cola as cola, null as colB from tableA where….
    
    Union all
    
    Select null, colB from tableB where…) tmp

    Annyi egyesítést végezhet, amennyi szükséges, hogy egyetlen lekérdezésben lekérje az összes változót ugyanabból a kapcsolatkészletből.

    Ezt nem könnyű megvalósítani vagy fenntartani, és fennáll a veszélye annak, hogy hibákat követnek el a lekérdezések létrehozásakor, és az összes változót egyetlen inicializálási blokkhoz rendelik.

Ha gondosan valósítja meg és fenntartja az inicializálási blokk lekérdezéseit és változóit, jelentősen csökkentheti a bejelentkezéshez és az első irányítópult-oldal megjelenítéséhez szükséges időt.