Oracle内存结构和执行计划分析
1:ORACLE内存结构
SGA:系统全局区
Database buffer cache(数据块缓存区):用于缓存最近从磁盘读取的数据块;
Redo log buffer(重做日志缓冲区):存储写入磁盘中的重做日志信息,用户正在操作的,还没有提交的内容;
share pool(共享池)
library cache(库缓存):缓存近期执行过的SQL和存储过程的执行计划;
Data dictionary cache(数字字典缓存):存放SQL语句中的表,索引,列,权限等字典缓存;
PGA:程序缓冲区(为某个用户进程服务)
SID:安全标识符,是为域中计算机分配的唯一ID标识;
2:SQL执行引擎:
1,SQL的语法,语义检查,展开视图等,
2,硬解析:查询优化器(查询转换,代价估算,生成计划),软解写:拿缓存
3,行源生成器(为执行计划生成行源)
4,SQL执行引擎(按执行计划执行)
RBO(Rule-Based Optimization) 基于规则的优化器
CBO(Cost-Based