如果您在 Oracle Analytics Cloud 使用資料閘道或遠端資料連線器,每次執行查詢時的持續時間都會稍微增加。
您在執行報表時並不會注意到持續時間增加,因為增加的時間不到 0.3 秒。不過,若您在有使用者登入時執行大量 (此數量取決於您的效能需求) 的初始化區塊,可能就會發生效能問題,因為初始化區塊查詢是以循序方式執行。對初始化區塊使用延緩選項並無法解決此問題,因為初始化區塊會在您開啟第一個儀表板頁面時執行。
如果您使用 Oracle BI Applications,這也是一個問題,因為它會執行超過兩百個初始化區塊。對於 Oracle Analytics Cloud,避免這些效能問題的最佳方式就是減少初始化區塊的數量。
下列是如何減少階段作業初始化區塊數目的建議:
例如,在 Oracle BI Applications 中,請停用與不再使用之 Oracle BI Applications 模組有關的初始化區塊。
row_wise
初始化區塊合併,並且在它們的查詢之間使用 UNION ALL
以傳回相同的資料類型,但若有優先順序規則則除外。
例如:
Init block 1: query1 Init block 2: query2 Merged init block: query1 union all query2
dual
或 W_DUAL_G
選取硬式編碼值的所有初始化區塊,並且將硬式編碼值放到相應變數的預設初始設定元中。select
敘述句。HR xxx Attribute yyy
row_wise
且使用相同連線集區的所有其餘初始化區塊。例如:
初始化區塊 1 以查詢 1 為依據:select colA from tableA where…
。
初始化區塊 2 以查詢 2 為依據:select colB from tableB where…
。
您可以使用類似以下的查詢,將它們合併成單一初始化區塊:
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
您可以視需要執行無限個聯集,使用單一個查詢從相同的連線集區擷取所有變數。
這在實行或維護上並不容易,而且在建立查詢並將所有變數指定至單一初始化區塊時,還要冒著出錯的風險。如果您小心實行並維護初始化區塊查詢和變數,將可大幅縮減登入及顯示第一個儀表板頁面的時間。