结果缓存
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 秒。
结果缓存保存缓存,直到更新/更改/删除数据库中的数据。任何更改都将释放缓存。