列出Oracle中的所有缓存

时间:2016-06-29 06:58:34

标签: sql oracle oracle11g oracle10g

有没有办法用SQL查询列出Oracle中的所有缓存?我想在Oracle 12c企业版中列出有关它们的所有可用信息。

2 个答案:

答案 0 :(得分:2)

Oracle有许多不同类型的缓存。没有一个查询可以全部显示它们。

  1. 缓冲区缓存(SGA)这是最重要的缓存,它包含表,索引和其他对象的块。一般来说,最活跃和最近使用 对象将在缓冲区缓存中。但是围绕缓冲区缓存中对象大小和持久性的算法很复杂,部分没有文档记录。

  2. 共享池(SGA)这是包含SQL查询,存储过程,数据字典等的多个缓存的集合。

  3. 会话和客户端缓存(PGA)通常,程序全局区域用于存储查询特定数据,例如排序和散列区域。但它也包含 程序变量,这意味着它有时可以用作缓存。

  4. 内存中选项缓存面向列的数据以及可能整个数据的选项。

  5. SQL结果缓存缓存特定SQL查询的结果。此缓存不经常使用,必须手动启用。

  6. PL / SQL函数结果缓存缓存函数的结果。此缓存也很常见,必须手动启用。

  7. 子查询缓存自动缓存某些子查询,从而提高查询性能。例如,select (select count(*) from large_table) from another_large_table; 可能比你预期的要快得多。

答案 1 :(得分:1)

SELECT * FROM v $参数   名称LIKE' result_cache%';

不确定我是否正确理解了您的问题。但是这个查询会给你result_cache_mode,result_cache_max_size,result_cache_max_result,result_cache_remote_expiration。希望它有所帮助。

感谢。