结果缓存

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 秒

结果缓存保存缓存,直到更新/更改/删除数据库中的数据。任何更改都将释放缓存。