2010-03-24 70 views
3

在我們的在oracle中生成大量報表的項目中,我們使用了一些永久表來保存中間結果。例如,爲了生成一個報告,我們運行幾個查詢並填充表,在最後一步,我們將中間表與巨大的應用程序表連接起來。 這些中間表已被清除,用於下次報告運行。我們對性能領域的擔憂很少。臨時中間表

  1. 這些中間表是事務性的,沒有統計數據。將這些應用程序分區並具有最新的統計信息,這是不錯的主意。

  2. 我們需要這些存儲在中間表中的結果在來自UI的請求中可用,因此我們無法使用oracle提供的臨時表。

任何想法,可以做什麼,將不勝感激。

回答

4

如果中間表達到一些相對一致的行數,您可以在填充(一次)填充過程後計算它們的統計數據,然後使用DBMS_STATS.LOCK_TABLE_STATS將這些值鎖定到位。在表被截斷並且下一次重新加載開始之後,行等的高估並不重要,但是當進程開始查詢下一個週期的表時將會到位。