Tianlesoftware Oracle学习指南v1.0:实战与经验分享

需积分: 10 4 下载量 151 浏览量 更新于2024-09-10 1 收藏 18.14MB PDF 举报
Tianlesoftware Oracle 学习手册(v1.0)是由Tianlesoftware作者在长期的Oracle学习与实践中编撰的一份宝贵资源。这份学习手册涵盖了作者在探索Oracle数据库管理系统过程中积累的实验经验、遇到的问题以及解决方案。它集合了作者博客(http://blog.csdn.net/tianlesoftware)上的文章,这些文章经过分类和整理,方便初学者和进阶用户查阅。 手册中的内容不仅包括基础概念和技术介绍,还包含了对前辈们如eygle、君三思、谭怀远、陈吉平等人的知识传承和引用,他们对中国数据库行业的贡献被作者铭记。作者强调,所有引用均出于学习目的,并表示如果发现有版权问题,欢迎联系以便及时处理。 值得注意的是,由于作者对Oracle的理解在不断深化,文档可能存在一些理解和表述上的不足,鼓励读者在阅读过程中指出问题,以便作者能够及时修正和完善。手册的初衷是为了帮助那些刚接触Oracle的人,尽管在排版方面可能不够完美,但它仍然不失为一个有价值的参考资源。 随着时间的推移,作者在2012年更新了博客的内容,并决定将原有的学习手册转化为PDF格式,作为其个人学习历程的一部分,同时也是为新进者提供一个起点。同时,Tianlesoftware还建立了多个DBA交流群组,为数据库管理员提供了互相学习和分享的平台。 Tianlesoftware Oracle学习手册(v1.0)是一份实践与理论相结合的实用指南,对于希望深入了解Oracle数据库技术的读者来说,是值得深入研究和参考的重要资源。
2013-10-06 上传
在Oracle 几年的学习中,做了很多的实验,也遇到了很多的问题, 在这个过程中,积累了一些学习文档。也更新到了blog上。 因为太多,不便于查阅。 根据自己对 Oracle 的理解,把这些 blog 进行了分类,并进行了一些整理,方便自己的查看。 这些文档中有很多内引用借鉴了前辈们的资料和google 上的一些信息。 如:eygle,君三思,谭怀远,陈吉平等前辈们的书籍和 blog。 感谢这些前辈们对中国 DB 事业做出的贡献。 在这里引用的内容也是完全出于学习。 没有其他用途,如有侵犯到版权的问题,请联系我。 我将删除这些信息。 对数据库这块也是在不断的学习,对oracle 的理解也是在不断的变化。在这个过程中,难免有理解错误的地方,或者内容上遗漏的,如果发现了问题,烦邮件给我,我会虚心的学习。并更新该文档。 PS: 有些内容在排版上不太合适,因为很多也是在后期的整理中加上去的。以后有空在调整这些内容的排版了。 目录: TIANLESOFTWARE ORACLE 学习手册 ................................................................... 一. ORACLE 基础知识 ............................................................................................. 1.1 ORACLE OLAP 与 OLTP 介绍 .............................................................................. 1.1.1 什么是 OLTP ............................................................................................. 1.1.2 什么是 OLAP ............................................................................................. 1.1.3 在 OLAP 系统中,常使用分区技术、并行技术 .................................... 1.1.4 分开设计与优化 ...................................................................................... 1.2 索引详解 ........................................................................................................... 1.2.1 索引介绍 .................................................................................................. 1.2.1.1 索引的创建语法 ............................................................................................ 1.2.1.2 索引特点........................................................................................................ 1.2.1.3 索引不足........................................................................................................ 1.2.1.4 应该建索引列的特点 .................................................................................... 1.2.1.5 不应该建索引列的特点 ................................................................................ 1.2.1.6 限制索引........................................................................................................ 1.2.1.6.1 使用不等于操作符(<>、!=) ............................................................ 1.2.1.6.2 使用 IS NULL 或 IS NOT NULL ............................................................... 1.2.1.6.3 使用函数 ............................................................................................... 1.2.1.6.4 比较不匹配的数据类型 ........................................................................ 1.2.1.7 查询索引........................................................................................................ 1.2.1.8 组合索引........................................................................................................ 1.2.1.9 ORACLE ROWID ....................................................................... 1.2.1.10 选择性 ................................................................................. 1.2.1.11 群集因子(Clustering Factor) ................................................ 1.2.1.12 二元高度(Binary height) ...................................................... 1.2.1.13 快速全局扫描 ...................................................................... 1.2.1.14 跳跃式扫描 .......................................................................... 1.2.2 索引分类 ............................................................................. 1.2.2.1 B 树索引 (默认类型) ............................................................. 1.2.2.2 位图索引................................................................................ 1.2.2.3 HASH 索引............................................................................... 1.2.2.4 索引组织表 ............................................................................ 1.2.2.5 反转键索引 ............................................................................ 1.2.2.6 基于函数的索引 .................................................................... 1.2.2.7 分区索引................................................................................ 1.2.2.7.1.本地分区索引(通常使用的索引) .................................. 1.2.2.7.2.全局分区索引 ................................................................ 1.2.2.8 位图连接索引 ........................................................................ 分区表总结 .................................................................................. 1.3.1. 分区表理论知识 ................................................................ 1.3.2 普通表转分区表方法.......................................................... 1.3.2.1 插入: Insert with a subquery method ................................ 1.3.2.1.1 Oracle 11g 的 Interval .................................................. 1.3.2.1.2 Oracle 10g 版本 .......................................................... 1.3.2.2 交换分区:Partition exchange method ................................ 1.3.2.3 使用在线重定义:DBMS_REDEFINITION .............................. 1.3.2.4 使用导出导入 ........................................................................ 1.3.2.4.1 迁移分区表的步骤 ....................................................... 1.3.2.4.2 示例 1:使用 exp/imp .................................................. 1.3.2.4.3 示例 2:使用 expdp/impdp .......................................... 1.3.3 分区表的其他操作.............................................................. 1.3.3.1 添加新的分区 ........................................................................ 1.3.3.2 split 分区拆分 ........................................................................ 1.3.3.3 合并分区 Merge .................................................................... 1.3.3.4 移动分区................................................................................ 1.3.3.5 Truncate分区 .......................................................................... 1.3.3.6 Drop 分区 ............................................. 1.3.4 分区表的索引 .................................... 1.3.4.4.1 Local 本地索引 ........................... 1.3.4.4.2 Global 索引 .................................. 1.3.4.4.3 索引重建问题 ............................ 1.3.5 Oracle 11g 中的分区表 ...................... 1.3.5.1 11g中的分区表新特性 ....................... 1.3.5.1.1 Interval Partitioning ..................... 1.3.5.1.2 System Partitioning ...................... 1.3.5.1.4 Virtual Column-Based Partitioning.................................................... 1.3.5.2 11g 虚拟列实现 按星期分区表 .......................................................... 1.3.5.3 Interval 分区 示例 ................................................................................ 1.3.5.3.1 创建按月分区的分区表 .................................................................. 1.3.5.3.2 创建一个以天为间隔的分区表 ....................................................... 1.4 ORACLE 锁 ..................................................................................................... 1.4.1 锁(Lock) ......................................................................................... 1.4.1.1 锁的概念.................................................................................................. 1.4.1.2 锁的分类.................................................................................................. 1.4.1.2.1. 按用户与系统划分,可以分为自动锁与显示锁 ......................... 1.4.1.2.2. 按锁级别划分,可分为: 排它锁(Exclusive Locks,即 X 锁)和 即 S锁) ......................................................................................................... 1.4.1.2.3 按操作划分,可分为 DML 锁(data locks,数据锁)、DDL 锁( 和 System Locks。 .......................................................................................... 1.4.1.2.4 DML 锁 ........................................................................................... 1.4.1.2.5 DDL 锁(dictionary locks) ........................................................... 1.4.1.2.6 System Locks .................................................................................. 1.4.2 死锁 .................................................................................................... 1.4.3 锁 和 阻塞 ........................................................................................ 1.4.3.1 相关概念.................................................................................................. 1.4.3.2 引起阻塞的几种常见情况 ...................................................................... 1.4.3.2.1 DML 语句 ...................................................................................... 1.4.3.2.2 外键没有创建索引 ....................................................................... 1.4.4 Latch 说明 ........................................................................................... 1.4.4.1 Latch ...................................................................................................... 1.4.4.2 有关 SPin 的说明 .................................................................................. 1.4.4.3 进程获取Latch 的过程 ......................................................................... 1.4.4.4 Latch 和 Lock ........................................................................................ 1.4.4.5 Latch 争用 ............................................................................................ 1.4.4.5.1 共享池中的 Latch争用 ................................................................... 1.4.4.5.2 数据缓冲池 Latch争用 ................................................................... 1.4.4.6 热块产生的原因 .................................................................................... 1.4.4.6.1 表数据块 ......................................................................................... 1.4.4.6.2 索引数据块 ..................................................................................... 1.4.4.6.3 索引根数据块 ................................................................................. 1.4.4.6.4 段头数据块 .................................................................................... 1.4.4.7 检查Latch 的相关 SQL 1.4.4.7.1 查看造成 LATCH BUFFER CACHE CHAINS等待事件的热快 1.4.4.7.2 查询当前数据库最繁忙的 Buffer,TCH(Touch)表示访问次数越高,热点快竞争问题就存在 1.4.4.7.3 查询当前数据库最繁忙的 Buffer,结合 dba_extents 查询得到这些热点 Buffer 来自哪些对象 1.4.4.7.4 如果在 Top 5 中发现 latch free热点块事件时,可以从 V$latch_children 中查询具体的