SQL语句执行过程:
1.ORACLE使用hash算法,为该SQL语句在library cache中分配一个SQL区。
在SQL区中搜索该语句是否在,存在时查询数字字典,检查权限。
不存在时,编译、生成分析数。
2.执行SQL语句:
将分析树放入数据缓冲区,执行读写操作。
3.取数据:
将数据读入内容。
步骤1占60%的时间,优化目标是减少解析时间,实现代码共享。
与SQL内存有关的的参数:
shared_pool_size
shared_pool_reserved_size
open_cursors
session_cached_cursors
cursor_space_for_time
cursor_sharing
不但需要避免硬解析,也需要减少软解析
将频繁使用的实体驻留内存
先执行以下2个脚本:
$ORACLE_HOME/dbms/admin/dbmspool.sql
$ORACLE_HOME/dbms/admin/prvtpool.plb
使用dbms_shared_pool.keep ('package_name');将常用的存储过程keep在内存中。
select name,kept,type,sharable_mem from v$db_object_cache where owner='LDY';
kept=yes表示对象keep在cache里了。
阅读(781) | 评论(0) | 转发(0) |