合 Oracle DBA面试笔试之初中级DBA通用系列
一、基本概念类
1、数据库正常启动所经历状态
startup nomount :数据库实例启动
startup mount :数据库装载
startup open :数据库打开
2、简述table segment extent block之间的关系
大小关系:table>segment>extend>block
3、描述tablespace和datafile之间的关系
tablespace和datafile是一对多的关系,
tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。
4、AMM和ASMM有什么特点
自动内存管理(AMM): memory_target=非0,是自动内存管理 ,如果初始化参数 LOCK_SGA = true ,则 AMM 是不可用的。
自动共享内存管理(ASMM): 在memory_target=0 and sga_target=非0 是自动内存管理
5、回滚段的作用是什么
事务回滚:当事务修改表中数据的时候,该数据修改前的值会存放在回滚段中,当用户回滚事务时,Oracle将会利用回滚段中的数据来将修改的数据恢复到原来的值。
事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在undo表空间中,Oracle将在下次打开数据库时利用回滚来恢复未提交的数据。
读一致性:当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级读一致性)。
6、日志的作用是什么
记录数据库事务,最大限度地保证数据的一致性与安全性
redo log:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复,一个数据库至少需要两个重做日志文件
archive log:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。
7、SGA主要有那些部分,主要作用是什么
SGA:
db_cache
shared_pool
large_pool
java_pool
db_cache: 对于Oracle数据库的运转和性能起着非常关键的作用,它占据Oracle数据库SGA(系统共享内存区)的主要部分。Oracle数据库通过使用LRU算法,将最近访问的数据块存放到缓存中,从而优化对磁盘数据的访问.
shared_pool:共享池的大小对于Oracle性能来说也是很重要的。共享池中保存数据字典高速缓冲和完全解析或编译的的PL/SQL 块和SQL 语句及控制结构
large_pool:使用MTS配置时,因为要在SGA中分配UGA来保持用户的会话,就是用Large_pool来保持这个会话内存使用rman做备份的时候,要使用Large_pool这个内存结构来做磁盘I/O缓存器
java_pool: 为java procedure预备的内存区域,如果没有使用java proc,java_pool不是必须的
8、Oracle系统进程主要有哪些,作用是什么?
数据写进程(dbwr):负责将更改的数据从数据库缓冲区高速缓存写入数据文件
日志写进程(lgwr):将重做日志缓冲区中的更改写入在线重做日志文件
系统监控(smon) :检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复
进程监控(pmon) :负责在一个Oracle 进程失败时清理资源
检查点进程(chpt):负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。
归档进程(arcn) :在每次日志切换时把已满的日志组进行备份或归档
作业调度器(cjq) : 负责将调度与执行系统中已定义好的job,完成一些预定义的工作.
恢复进程(reco) : 保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;
二、SQL优化类
1、表连接方式
hash join:哈希连接
merge join:合并连接
nest loop:嵌套循环
2、通过sql语句查看sql的执行计划
1 | select * from table(dbms_xplan.display_awr('sql_id')); |
或者:
1 | select * from table(dbms_xplan.display_cursor('sql_id',null,'advanced')); |
3、CBO与RULE的区别
Rule Based Optimizer(RBO):基于规则
Cost Based Optimizer (CBO):基于成本
目前oracle默认是CBO模式
RBO遵循简单的优先级别,使用15种级别要点,当接收到查询,优化器将评估使用到的要点数目, 然后选择最佳级别(最少的数量)的执行路径来运行查询。
CBO尝试找到最低成本的访问数据的方法,计算使用不同的执行计划的成本,并选择成本最低的一个,关于表的数据内容的统计被用于确定执行计划。
4、SQL调整最关注的是什么
1 | 查看该 SQL 的 response time(db block gets/consistent gets/physical reads/sorts (disk)) |
5、对索引的认识(索引的结构、对dml影响、为什么提高查询性能)
b-tree index:B树索引,最常见的类型
bitmap index:位图索引