Oracle数据库性能优化基础-问答版
- 一、SGA有哪些内存组件构成?
- 二、SGA的内存分配是按什么单位来进行分配的?
- 三、共享池(Shared pool)又可以分几部分?都是什么?
- 四、如何设置自动共享内存管理ASMM?
- 五、后台进程有哪些?
- 六、Library Cache的主要功能是什么?
- 七、叙述SQL解析的过程
- 八、绑定变量的好处和弊端?
- 九、数据缓冲区可以细分为哪三个部分?
- 十、什么是逻辑读?什么是物理读?什么事一致性读(CR)?
- 十一、什么时候需要构建一致性CR块?
- 十二、参数文件有哪几种文件名?
- 十三、多个参数文件的优先级什么样?
- 十四、动态参数修改后不能立即生效的是哪种参数?
- 十五、CBC链(Cache Buffer Chain)按什么记录的?
- 十六、LRU 链按什么记录的?
- 十七、WLRU链按什么记录的?
- 十八、CKPT链按什么记录排列的?
- 十九、四种链存在的意义是什么?
- 二十、什么叫检查点,完全检查点,增量检查点 ?
- 二十一、简述实例恢复的过程?
- 二十二、oracle中一些排序的SQL命令。
- 二十三、什么是硬解析,什么是软解析,什么是软软解析?
最近在回顾oracle数据库性能优化方面的知识点,整理了一下常见的基础知识,方便自己和读者查阅。
一、SGA有哪些内存组件构成?
SGA包含的主要组件:
共享池(shared pool);
数据库缓冲区高速缓存(database buffer cache);
日志缓冲区(redo buffer cache);
大池;
Java池;
流池。
二、SGA的内存分配是按什么单位来进行分配的?
SGA的内存是按粒度来进行分配的,最小的粒度为4M,设置大小不到一个粒度按一个粒度计算。
三、共享池(Shared pool)又可以分几部分?都是什么?
共享池主要分为两个部分:库缓冲区(Library Cache)、数据字典缓冲区(Data Dictionary Cache)。
四、如何设置自动共享内存管理ASMM?
Oracle 10g提供了一个新的初始化参数:sga_target来启动ASMM,该参数定义了整个SGA的总容量。同时,初始化参数statistics_level必须设置为typical或all才能启动ASMM,否则如果设置为basic,则关闭ASMM。
五、后台进程有哪些?
后台进程主要有五个:PMON SMON DBWR LGWR CKPT 。
六、Library Cache的主要功能是什么?
Library cache位于Oracle实例SGA中的shared pool,用于缓存SQL游标、PLSQL程序以及Java类的可执行形式。
七、叙述SQL解析的过程
SQL执行过程:
(一).探查执行历史
(二).分析语句
(三).HASH值匹配
(四).生成执行计划
(五).执行语句
(六).排序获取返回行
SQL解析过程:
(1)语法检查(syntax check): 检查此sql的拼写是否语法。
(2)语义检查(semantic check): 诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限。
(3)对sql语句进行解析(prase): 利用内部算法对sql进行解析,生成解析树(parse tree)及执行计划(execution plan)。
(4)执行sql,返回结果(execute and return)