一
.
简介
:
数据库调整中最为重要的一部分是重写运行效率差的
SQL
代码
,
重写之后的
SQL
代码在运行效率方面可能会与之前的产生极大的差别!
但是当遇到重写之后性能还是未能突破瓶颈或者你是用户 ( 无法访问 SQL 代码 ) 的时候 , 可以通过调整 ORACLE 的共享内存结构 SGA(System Global Area), 最大限度地提高性能!
SGA 中比较重要的组件就是 Shared Pool( 共享池 ), 它的作用就是高速缓存 SQL 语句 ! 共享池由一个最近最少使用 (LRU,Least Recently Used) 算法来管理 !
共享池的好处 :
1.select cust_id,cust_name from col_cust
2. 上列语句的算法被转换成 ASCII 码 , 然后通过一个散列算法产生一个单独的散列值 ~~ 接着 Process 会查看该散列值在 Shared Pool 中是否存在 ,
如果存在 , 就执行高速缓存中语句
3. 如果不存在 , 就必须对该语句进行语法分析 , 这些分析步骤会产生额外的系统开销 , 该操作是高代价的 !
4. 查找到匹配的 SQL 叫做一次高速缓冲区命中 (Cache Hit)
5. 反之叫做高速缓冲区脱靶 (Cache Miss)
6
但是当遇到重写之后性能还是未能突破瓶颈或者你是用户 ( 无法访问 SQL 代码 ) 的时候 , 可以通过调整 ORACLE 的共享内存结构 SGA(System Global Area), 最大限度地提高性能!
SGA 中比较重要的组件就是 Shared Pool( 共享池 ), 它的作用就是高速缓存 SQL 语句 ! 共享池由一个最近最少使用 (LRU,Least Recently Used) 算法来管理 !
共享池的好处 :
1.select cust_id,cust_name from col_cust
2. 上列语句的算法被转换成 ASCII 码 , 然后通过一个散列算法产生一个单独的散列值 ~~ 接着 Process 会查看该散列值在 Shared Pool 中是否存在 ,
如果存在 , 就执行高速缓存中语句
3. 如果不存在 , 就必须对该语句进行语法分析 , 这些分析步骤会产生额外的系统开销 , 该操作是高代价的 !
4. 查找到匹配的 SQL 叫做一次高速缓冲区命中 (Cache Hit)
5. 反之叫做高速缓冲区脱靶 (Cache Miss)
6