利用Oracle的计划缓存提高运行效率(oracle的计划缓存)

Oracle的计划缓存可以帮助我们提高数据库的性能。大多数数据库管理系统都需要重新解析每条SQL语句,构建新的执行计划,称之为“求解”。但是,重复执行相同的SQL语句会产生巨大浪费,既浪费用户的等待时间,也浪费系统资源。

针对这一问题,Oracle引入了一种新的机制——计划缓存。Oracle 的计划缓存存储每条SQL语句执行所需的执行计划,以便能减少训练开销,更好地控制系统性能。

此外,Oracle还设置了一些参数来控制计划缓存的大小。监控这些参数,可以确定计划缓存的合理分配,以确保它的有效性。通常,在做调整前,应先熟悉一下这些缓存参数:

SQL> show parameter plan_cache
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_plan_cache_advice_enabled boolean false
_plan_not_cached_threshold integer 3
_plan_series_capture_interval integer 5
plan_cache_max_size big integer 73 GB
plan_cache_size big integer 5GB
plan_cache_threshold double 0

计划缓存参数_plan_not_cached_threshold 控制最低次数为多少次可以将计划缓存在内存中。如果执行SQL语句的次数小于此参数的设定值,则Oracle不会将该SQL语句以及对应的执行计划缓存,将其放到内存中,因此当下次再次执行此SQL语句时,数据库仍需重新解析,因而无法实现提升性能的效果。因此,有必要把这个值设置为一个尽可能低的数值,以防止大多数SQL语句的缓存周期过短。

另外,plan_cache_threshhold参数控制一个特定SQL语句可以保留在计划缓存中的次数。如果该值设置得过高,则可能会导致早一点被放弃的SQL语句也保留,从而降低缓存的使用。

综上所述,正确调整Oracle的计划缓存参数,可以有效提高系统的运行效率,从而更好的满足用户的需求。


数据运维技术 » 利用Oracle的计划缓存提高运行效率(oracle的计划缓存)