《Oracle DBA突击帮你赢得一份DBA职位》笔记

作者:张晓明 
本书分基础篇、中级篇、高级篇 三个级别,粗略的看了本书,主要还是看基础篇和中级篇,下面是我随手记录的一些知识点,不够全面,还望包涵;
truncate和delete的区别:
    truncate是ddl语句,delete是dml语句
    truncate速度快,delete速度慢
    truncate不可以rollback,delete 可以rollback(truncate有风险)
    truncate回收高水位线(high watermark),delete不回收高水位
delete需要把每个有数据的块读出来,写上delete标记,另外还要把delete的内容拷贝一份到undo,并且把它的动作记录到redo;
truncate就是把系统表(或者tablespace bitmap)里面把相关的extent的标记为未使用,另外把dba_objects(obj$)里的data_object_id换一下。    
相当于,truncate的操作就是先drop掉表,并且重建一张新表
 
OSI模型把网络交互分成7层,从下向上一次为:
    物理层:这一层定义了物理、电气规范,用于在两个物理主机间建立、维持、释放连接;Hub属于典型的物理层设备;
    数据链路层:这一层完成同一子网的两个设备间的通信,交换机属于典型的链路层设备;
    网络层:这一层提供网络间的路由功能,如果通信跨越多个子网络,这一层负责选择一条最优路线,路由器属于典型的网络层设备,有一种设备叫做“三层交换机”,实际就是交换机中添加路由的功能,这一层的典型协议是IP协议;
    传输层:完成两个节点间数据的可靠传输,这一层的典型协议是TCP、UDP协议。
    会话层
    表示层
    应用层
 
数据块结构:
4部分:数据块头(Block header)、Row Directory、Free Space、Used Space
(1)、块头中储存着数据块地址、数据块类型(索引块、UNDO块等)、事务表(ITL)
        ITL是数据块头最为重要的内容,它是Oracle “行级锁”和“读一致性”的实现基础,也是Oracle优于其他数据库的“锁机制”体现,ITL相当于一个表格,每个表项都指向在本数据块中参与到某个事物的一条记录,包括内有有UBA(Undo Block Address)、事物号(Transaction ID)、SCN号。
(2)、Row Directory这部分信息记录了数据块中每条记录的相对于数据块头偏移量。可以把它想象成数据块内部的一个指针表,有了这个指针后,Oracle寻找某条记录时,就不必遍历整个数据块才能获取一条记录了。
(3)、Free Space这部分空间是数据块的空闲空间,每当插入新纪录、更新记录需要更大的空间就会使用这部分空间,这个空间的大小受PCTFREE参数的控制。
(4)、Used Space数据记录占用的空间,这部分空间同样受着PCTFREE和PCTUSED两个参数的限制。
 
Extent空间管理:
本地管理比字典管理有4个优势:
不再需要在UET$、FET$两个数据字典上的递归SQL调用;
减少了数据字典的竞争(ST Enqueue);
改变位图不会产生UNDO记录;
不再需要周期性的合并操作(Coalescing)。
 
Oracle主要后台进程
进程
缩写
描述
Database WriterDBWn负责把脏数据写回磁盘
Log WriterLGWR负责把日志数据写到联机日志文件
CheckpointCKPT负责检查点操作
Process MonitorPMON负责维护用户进程
System MonitorSMON负责实例恢复
AchieverARCn负责归档操作,生成归档日志
Manageability MonitorMMON和AWR有关
Manageability Monitor LightMMML和AWR有关
Memory ManagerMMAN和自动SGA管理有关
Job Queue Coordination ProcessCJQO定时任务进程
Recovery WriteRVWR和Flashback Database 功能有关
Change Tracking WriteCTWR跟踪数据块变化,支持快速增量备份
 
Redo记录包含以下内容:
事务号;
被修改数据的位置,数据块号;
修改后的值。
 
完整的SQL语句的执行过程:
(1) Synatic:语法分析,这一步检查SQL语句的语法是否正确,有没有拼写错误,比如把SELECT写成SELET。
(2) Semantic:语义分析,这一步检查要查询的对象是否存在,以及用户是否具有操作该对象的权利。
(3) Parent Cursor:在Library Cache中检查语句的Cursor是否存在,如果存在可以重用的Cursor(包括Parent Cursor和Child Cursor),则把PGA的Private SQL Area和其做关联,然后直接跳到第(8)步。这种解析也叫做软解析(Soft Parse)。如果没有就申请一个Parent Cursor,Parent Cursor就是用来保存SQL语句的,然后继续第(4)步。
(4) View Merge:如果用户的语句中用到了试图(View),把试图语句合并到用户语句中。
(5) Statement Transformation:把Complex SQL转化成simple SQL,比如展开子查询。
          某些资料也把(4)和(5)这两步操作叫做逻辑优化(Logical Optimization)。
(6) Optimization:确定最佳的访问路径。如果是RBO,根据一些预定义的规则来决定访问路径;如果是CBO,则根据对象的统计信息确定访问路径。有些资料将这一步操作叫做物理优化(Physical Optimization)。
(7) QEP Generation:生成执行计划(Query Execution Plan);也就是产生Child Cursor。执行计划会保存在Child Cursor中,并和Parent Cursor相关联。在Child Cursor中保存的是执行计划和执行环境信息(比如优化器模式)。
和软解析(Soft Parse)相对应,如果一个语句完整的经历了第(1)~(7)步,这个解析过程叫做硬解析(Hard Parse)。
(8) QEP Execution:执行语句,生成结果。

性能微调-与Cursor有关的参数:
OPNE_CURSORS :每个Session最多能够打开的Cursor数量,超过就会报ORA-1000错误;
SESSION_CACHED_CURSORS:代表被缓存的SQL Cursors(减少解析);
CURSOR_SHARING:定义Cursor共享的模式,包括:EXACT(精确).FORCE(强制).SIMILAR(类似)。
CURSOR_SPACE_FOR_TIME:缺省值为false,对于PARSE比较繁琐,SQL执行很频繁,共享池碎片较为严重的情况,建议不要使用。
 
聚簇因子:
高聚簇因子意味着索引访问效果不好,而低聚簇因子意味着访问效果好。
dba_indexes中的clustering_factor列反应了索引列的聚簇因子。
 
连接:
NEST LOOP:两表地位不同,一个驱动表(driving table),一个为被驱动表(drived table),工作方式是以驱动表每遍历一行就对整个被驱动表遍历一次,最终驱动表遍历一次,被驱动表被遍历N次(N为驱动表的行数)。
SORT MERGE:两表地位相等,每个表都先行排序,排序后两表都需要遍历一次,主要开销在两表的排序上。(Oracle实现排序的算法是二叉树算法(Binary Insertion Tree))。
HASH JOIN:两表也有驱动表和被驱动表的关系,算法执行过程:准备阶段:对驱动表的连接字段进行哈希操作,产生一系列的Hash Bucket(哈希桶)。探测阶段:依次读取被驱动表的每条记录,并对记录的连接字段执行相同的哈希函数,根据结果到上一步产生的哈希桶中检查匹配的记录。
 
STATSPACK解决问题的流程:
在利用STATSPACK时期,DBA
(1)首先,要有证据表明系统确实有问题,可能是用户抱怨等待时间变长,或者监控到CPU、IO突然负载增大。
(2)收集数据,诊断分析,初步估计发生问题的部分,性能通常会涉及很多组件(如CPU、IO、内存),每个部分都有可能是问题的瓶颈所在。
(3)针对不同的问题原因,确定相应的解决方案。
(4)尝试解决方案,通常一次尝试只针对一个组件,并观察调整后的效果。
(5)如果调整后没有效果,则说明原因定位错误,继续考虑其他问题和解决方案。
(6)如果调整后效果明显,就说明原因定位准确,根据原因进一步制定长期的解决方案。
(7)通常这个流程需要反复循环。

后续会继续添加;
 
点评:作者张晓明还有一本《大话Oracle RAC》的经典书籍,本人现在也在拜读,本书很适合一些平时没有注重细节知识点的求职朋友来突击一下Oracle基础知识。本书结构简单明了,知识点明细,需要慢慢品读,也有大量实验与理论相结合。




--------------------------------------------------------------------------------------------

版权所有,转载请注明作者及原文链接,否则追究法律责任!

QQ:      584307876

作者:    Seven

原文链接:  http://blog.csdn.net/sunjiapeng/article/details/8963713

邮箱:     seven_ginna@foxmail.com
由于文件大于60M上传上限,所以分割成了两个部分上传,这个是第一部分 内容推荐 本书以Oracle 10g为基础,由浅入深、从易到难,详细介绍了DBA职位所要求的知识结构和实战技能。第1章至第4章是基础篇,包括数据库建模、Oracle体系结构、网络结构、备份恢复和使用OEM,这些对于刚刚从事DBA或者试图转做DBA的朋友都是必备知识。第5章至第9章是中级篇,专门讨论性能调整,包括性能优化原理、Oracle性能调整发展历程、AWR、ASH、ADDM、Auto SQL Tunning等最新的助手工具,并通过大量实例展示技术的综合应用。第10章至第13章是高级篇,主要面向高级读者,高级DBA通常要解决架构层面的问题,因此对于这部分读者来说,最重要的是要扩展眼界,能够掌握如何选择最合适的工具而不是最贵的工具。为了跳出单一产品的限制,本书选择了异构互联和安全这两个主题来助读者扩展思路。 本书作者是Oracle资深DBA,本书不仅融入了作者十年的实战心得和工作经验,还提供了来自于工作现场的大量实例,具有很强的可操作性。 本书可以作为数据库开发人员、数据库管理员、数据库初学者及其他数据库从业人员的工作参考手册,也可以作为各大中专院校相关专业师生的参考用书和相关培训机构的培训教材。 本书以Oracle 10g为基础,由浅入深、从易到难,详细介绍了DBA职位所要求的知识结构和实战技能。第1章至第4章是基础篇,包括数据库建模、Oracle体系结构、网络结构、备份恢复和使用OEM,这些对于刚刚从事DBA或者试图转做DBA的朋友都是必备知识。第5章至第9章是中级篇,专门讨论性能调整,包括性能优化原理、Oracle性能调整发展历程、AWR、ASH、ADDM、Auto SQL Tunning等最新的助手工具,并通过大量实例展示技术的综合应用。第10章至第13章是高级篇,主要面向高级读者,高级DBA通常要解决架构层面的问题,因此对于这部分读者来说,最重要的是要扩展眼界,能够掌握如何选择最合适的工具而不是最贵的工具。为了跳出单一产品的限制,本书选择了异构互联和安全这两个主题来助读者扩展思路。 本书作者是Oracle资深DBA,本书不仅融入了作者十年的实战心得和工作经验,还提供了来自于工作现场的大量实例,具有很强的可操作性。 本书可以作为数据库开发人员、数据库管理员、数据库初学者及其他数据库从业人员的工作参考手册,也可以作为各大中专院校相关专业师生的参考用书和相关培训机构的培训教材。 作者简介 张晓明,Orocle OCP,现用网名“石头狗”,名称来自于《和佛陀赏花去》中的故事,狗会因为人随手丢出的一个东西而追逐,可能是一个骨头、一块肉、一个眼神,甚至是一个石头,警示一定要看清自己在追逐的东西。 张晓明,Orocle OCP,现用网名“石头狗”,名称来自于《和佛陀赏花去》中的故事,狗会因为人随手丢出的一个东西而追逐,可能是一个骨头、一块肉、一个眼神,甚至是一个石头,警示一定要看清自己在追逐的东西。 目录 第一部分 基础篇 第1章 数据建模  1.1 数据建模  1.2 规范化  1.3 如何表示树形结构  1.4 小结  第2章 Oracle体系架构  2.1 Oracle的网络配置  2.2 Oracle 10g架构  2.3 数据库  2.4 空间管理  2.5 实例  2.6 未尽话题  第3章 备份恢复  3.1 归档模式和非归档模式  3.2 备份概述  3.3 物理备份  3.4 备份前的环境配置  3.5 完全备份和增量备份  3.6 恢复  3.7 日志  3.8 Oracle MAA介绍  3.9 小结  第4章 OEM  4.1 Database Control  4.2 Grid Control架构  4.3 部署OEM Grid Control  4.4 部署Agent  4.5 OEM的维护工具  4.6 修改配置  4.7 小结  第二部分 中级篇 第5章 SQL优化原理  5.1 PGA  5.2 SQL语句的执行过程  5.3 执行计划  5.4 如何阅读执行计划  5.5 小结  第6章 访问路径和连接  6.1 QUBE模型  6.2 单表访问——全表扫描还是索引 6.3 连接  6.4 半连接  6.5 小结  第7章 并行操作  7.1 并行架构  7.2 启用并行处理  7.3 解读执行计划  7.4 等待事件 7.5 小结  第8章 自动管理和性能指标  第9章 自动诊断和顾问  第三部分 高级篇 第10章 Oracle的异构服务  第11章 数据安全  第12章 限制用户行为  第13章 审计 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值