shared pool的百分之七八十都是oracle的补丁没有打。
shared pool作用:缓存sql语句、sql语句的执行计划。
SQL语句执行:1.解析(parse) 2.执行(exec) 3.获取数据(fetch)
shared pool 在解析步骤起作用,减少解析时的开销。
shared pool主要分为:free(自由)、library(sql)、row(数据字典)
解析:硬解析、软解析‘、软软解析
硬解析:步骤:1.语法错误 2.对象是否存在 3.用户是否有系统、对象权限 4.生成执行计划(一条sql语句有多种执行方案)
5.挑选出最优的执行计划(这一步最消耗资源和时间,占这个过程的70%以上)
软解析:步骤:除了硬解析的5,其它都会执行,少了最消耗资源的一步。
libray cache中有sql和对应执行计划的缓存,则执行软解析,否则执行硬解析。
而在软硬解析过程中,都会频繁范围数据字典,因此将数据字典也放在shared pool(row cache)中。