Hantera initieringsblock

När du använder datanätslussen eller fjärranslutning av data med Oracles analysmoln tar varje fråga lite längre tid att köra.

Du märker inte den här fördröjningen när du kör en rapport, den är kortare än 0,3 sekunder. Du kan dock få prestandaproblem om du kör många initieringsblock (antalet beror på dina prestandakrav) när någon loggar in, eftersom initieringsblockfrågor körs seriellt. Det här avsnittet föreslår sätt att minska antalet initieringsblock för en session.

Du löser inte problemet genom att använda uppskjutningsalternativet för initieringsblocken eftersom de körs när du öppnar den första infopanelsidan.

Det här är ett problem om du använder Oracle BI Applications, eftersom det kör fler än 200 initieringsblock. I Oracles analysmoln är det bäst att undvika de här prestandaproblemen genom att minska antalet initieringsblock.

Oracle rekommenderar följande sätt för att minska antalet initieringsblock för en session:

  • Avaktivera alla initieringsblock du inte behöver.

    I Oracle BI Applications kan du till exempel avaktivera initieringsblock som refererar till Oracle BI Applications-moduler du inte använder längre.

  • Om det inte finns en företrädesregel kan du sammanfoga alla row_wise-initieringsblock som använder samma anslutningspool och returnera samma datatyp med UNION ALL mellan frågorna.

    Exempel:

    Init block 1: query1
    
    Init block 2: query2
    
    Merged init block: query1 union all query2
  • Avaktivera de initieringsblock som väljer ett hårdkodat värde från dual eller W_DUAL_G och sätt det hårdkodade värdet i motsvarande variabels standardinitierare.
  • Sammanfoga återstående initieringsblock som väljer data från dual till en enda select-sats.
  • Oracle BI Applications-kunder kan avaktivera alla initieringsblock som används till att hämta anpassade attributnamn och värden för Oracle Human Capital Management om motsvarande attribut inte används (om standardvärdet HIDE är variablernas aktuella värde) eller om du inte använder Oracle Human Capital Management som datakälla för Oracle BI Applications (det finns omkring 100 liknande initieringsblock i Oracle BI Applications):
    HR xxx Attribute yyy
  • Sammanfoga återstående initieringsblock som inte är row_wise och använd samma anslutningspool. Exempel:

    Initieringsblock 1 baseras på fråga 1: select colA from tableA where….

    Initieringsblock 2 baseras på fråga 2: select colB from tableB where….

    Du kan sammanfoga dem till ett enda initieringsblock med en fråga som den här:

    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

    Du kan göra så många sammanfogningar som behövs för att hämta alla variabler från samma anslutningspool i en enda fråga.

    Det här är inte särskilt enkelt att implementera eller underhålla, och du riskerar att göra misstag när du skapar frågorna och tilldelar alla variabler till ett enda initieringsblock.

Om du är noggrann när du implementerar och underhåller frågor och variabler i dina initieringsblock kan du korta ned tiden det tar att logga in och visa den första infopanelsidan betydligt.