2010-10-09 117 views
0

我使用大量全局臨時表來生成針對Oracle 10g數據庫的巨大報表。每個報告由4到5個全球臨時表(GTT)組成。但就我理解GTT的概念而言,數據是根據不同的參數組爲每個會話實時創建的。全局臨時表與普通表的性能效率 - oracle 10g

例如,在我的方案中,20個用戶生成銷售數據的上個月的報告,並且每天總計可執行多達1000個執行。但是,如果我們假設用戶更頻繁地查詢最近的銷售數據,那麼我們如何使用一些高速緩存來存儲一系列像互聯網瀏覽器那樣頻繁查詢的銷售數據??。此外,任何其他建議微調GTT的將是非常有益的。

回答

1

這聽起來像你是過度使用GTTs。它們在Oracle查詢中通常不常需要 - 與SQL Server(我已閱讀)相比,使用臨時表更爲常見和適當。如果不詳細瞭解您的要求,很難推薦一種方法,但materialized views是一種「緩存」一次查詢結果並多次使用它們的方法。

+1

+1。大多數情況下,我發現用於驅動報告的GTT將僅包含ID(例如,由用戶選擇),然後報告將其返回源數據表。 – 2010-10-11 05:01:39

+0

或暫時保留一個數據集,這些數據集的構建成本很高,但是被多個子報表引用。 – 2010-10-11 17:45:15