怎么理解sql体系结构shared pool

这篇文章主要介绍“怎么理解sql体系结构shared pool”,在日常操作中,相信很多人在怎么理解sql体系结构shared pool问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解sql体系结构shared pool”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1. Shared pool作用

(1)将sql语句解析成执行计划

(2)对执行计划进行执行,读取数据

(3)将读取到的数据返回给客户端

2. Shared pool组成

怎么理解sql体系结构shared pool

① free空间

② 库缓存,用于缓存SQL语句和执行计划

③ 字典缓存,存储数据库自己本身的信息,包括数据字典

3. 查询shared pool各部分大小

SQL> select * from v$sgastat a where a.name=’library cache’;

SQL>  select * from v$sgastat a where a.pool ='shared pool' and a.name='free memory';

SQL> select * from v$sgastat a where a.name='row cache';

4. 硬解析和软解析

在shard pool中,前台进程会将SQL语句解析成执行计划,这部分中解析方式有两种:硬解析和软解析。

(1)硬解析(hard parse):当一条SQL语句进入共享池后,没有解析成执行计划的缓存,就需要进行硬解析。

(2)软解析(soft parse):当一条SQL语句进入共享池后,共享池中有执行计划的缓存,就进行软解析。

SQL> select name,value from v$sysstat where name like 'parse%';

NAME                                                                  VALUE

---------------------------------------------------------------- ----------

parse time cpu                                                         1479

parse time elapsed                                                     2524

parse count (total)                                                   60356

parse count (hard)                                                     6524

parse count (failures)                                                   16

parse count (describe)                                                   50

在这个结果中,parse count (total)   代表从数据库启动之后,发生的全部解析数目。上述中当失败解析和硬解析量比较大,说明有问题了。

到此,关于“怎么理解sql体系结构shared pool”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!