結果快取

Oracle( 11g 及更高版本 )允許將 SQL 查詢快取在 SGA 中並重用以提高效能。它從快取而不是資料庫查詢資料。後續執行相同的查詢更快,因為現在正從快取中提取資料。

SELECT /*+ result_cache */ number FROM main_table;

輸出 -

Number   1
   2
   3
   4
   5
   6
   7
   8
   9
   10

Elapsed: 00:00:02.20

如果我現在再次執行相同的查詢,則執行的時間將減少,因為現在從第一次執行期間設定的快取中提取資料。

輸出 -

Number   1
   2
   3
   4
   5
   6
   7
   8
   9
   10

Elapsed: 00:00:00.10

注意經過的時間從 2.20 秒減少到 0.10 秒

結果快取儲存快取,直到更新/更改/刪除資料庫中的資料。任何更改都將釋放快取。