oracle学习经典教程
目 录 TIANLESOFTWARE ORACLE 学习手册.......1 一. ORACLE 基础知识..24 1.1 ORACLE OLAP 与OLTP 介绍..................24 1.1.1 什么是OLTP ....25 1.1.2 什么是OLAP....26 1.1.3 在OLAP 系统中,常使用分区技术、并行技术....26 1.1.4 分开设计与优化..........................27 1.2 索引详解..................28 1.2.1 索引介绍.........28 1.2.1.1 索引的创建语法......28 1.2.1.2 索引特点..................28 1.2.1.3 索引不足..................29 1.2.1.4 应该建索引列的特点...........................29 1.2.1.5 不应该建索引列的特点.......................29 1.2.1.6 限制索引..................29 1.2.1.6.1 使用不等于操作符(<>、!=)...29 1.2.1.6.2 使用IS NULL 或IS NOT NULL ......30 1.2.1.6.3 使用函数.........30 1.2.1.6.4 比较不匹配的数据类型...............30 1.2.1.7 查询索引..................30 1.2.1.8 组合索引..................30 1.2.1.9 ORACLE ROWID ........31 1.2.1.10 选择性..................31 1.2.1.11 群集因子(Clustering Factor) ..............31 1.2.1.12 二元高度(Binary height)....................31 1.2.1.13 快速全局扫描.......31 1.2.1.14 跳跃式扫描...........31 1.2.2 索引分类........32 1.2.2.1 B 树索引 (默认类型) ...........................32 1.2.2.2 位图索引.................33 1.2.2.3 HASH 索引................35 1.2.2.4 索引组织表.............36 1.2.2.5 反转键索引.............37 1.2.2.6 基于函数的索引..... 37 1.2.2.7 分区索引.................38 1.2.2.7.1.本地分区索引(通常使用的索引) 38 1.2.2.7.2.全局分区索引.40 1.2.2.8 位图连接索引.........40 1.3 分区表总结.............41 1.3.1. 分区表理论知识........................41 1.3.2 普通表转分区表方法..................45 1.3.2.1 插入: Insert with a subquery method ...........................46 1.3.2.1.1 Oracle 11g 的Interval................46 1.3.2.1.2 Oracle 10g 版本........................47 1.3.2.2 交换分区:Partition exchange method ...........................48 1.3.2.3 使用在线重定义:DBMS_REDEFINITION .........................50 1.3.2.4 使用导出导入.........54 1.3.2.4.1 迁移分区表的步骤.....................55 1.3.2.4.2 示例1:使用exp/imp ................55 1.3.2.4.3 示例 2:使用expdp/impdp........59 1.3.3 分区表的其他操作......................62 1.3.3.1 添加新的分区.........62 1.3.3.2 split 分区拆分.........64 1.3.3.3 合并分区Merge .....64 1.3.3.4 移动分区.................65 1.3.3.5 Truncate 分区...........65 1.3.3.6 Drop 分区.................66 1.3.4 分区表的索引66 1.3.4.4.1 Local 本地索引............................67 1.3.4.4.2 Global 索引......68 1.3.4.4.3 索引重建问题71 1.3.5 Oracle 11g 中的分区表............... 74 1.3.5.1 11g 中的分区表新特性........................74 1.3.5.1.1 Interval Partitioning ......................74 1.3.5.1.2 System Partitioning ....................... 1.3.5.1.3 More Composite Partitioning........75 1.3.5.1.4 Virtual Column-Based Partitioning75 1.3.5.2 11g 虚拟列实现 按星期分区表......76 1.3.5.3 Interval 分区 示例............................78 1.3.5.3.1 创建按月分区的分区表..............78 1.3.5.3.2 创建一个以天为间隔的分区表...80 1.4 ORACLE 锁.................82 1.4.1 锁(Lock).....82 1.4.1.1 锁的概念.................82 1.4.1.2 锁的分类.................83 1.4.1.2.1. 按用户与系统划分,可以分为自动锁与显示锁..83 1.4.1.2.2. 按锁级别划分,可分为: 排它锁 (Exclusive Locks,即X 锁)和共享锁(Share Locks, 即S 锁)........................84 1.4.1.2.3 按操作划分,可分为DML 锁(data locks,数据锁)、DDL 锁 (data dictionary lock) 和System Locks。.........84 1.4.1.2.4 DML 锁..........84 1.4.1.2.5 DDL 锁(dictionary locks).......87 1.4.1.2.6 System Locks .89 1.4.2 死锁................91 1.4.3 锁 和 阻塞....94 1.4.3.1 相关概念.................94 1.4.3.2 引起阻塞的几种常见情况..................97 1.4.3.2.1 DML 语句.....97 1.4.3.2.2 外键没有创建索引...................98 1.4.4 Latch 说明.......98 1.4.4.1 Latch.....................98 1.4.4.2 有关SPin 的说明.99 1.4.4.3 进程获取Latch 的过程.....................99 1.4.4.4 Latch 和 Lock..... 100 1.4.4.5 Latch 争用......... 100 1.4.4.5.1 共享池中的Latch 争用............. 101 1.4.4.5.2 数据缓冲池Latch 争用............. 102 1.4.4.6 热块产生的原因. 103 1.4.4.6.1 表数据块...... 103 1.4.4.6.2 索引数据块.. 103 1.4.4.6.3 索引根数据块........................... 104 1.4.4.6.4 段头数据块 104 1.4.4.7 检查Latch 的相关SQL ................... 105 1.4.4.7.1 查看造成LATCH BUFFER CACHE CHAINS 等待事件的热 快............... 105 1.4.4.7.2 查询当前数据库最繁忙的Buffer,TCH(Touch)表示访问次数越高, 热点快竞争问题就 存在. 105 1.4.4.7.3 查询当前数据库最繁忙的Buffer,结合dba_extents 查询得到这些 热点Buffer 来自哪些 对象. 106 1.4.4.7.4 如果在Top 5 中发现latch free 热点块事件时,可以从 V$latch_children 中查询具体的 Oracle作为一款成熟的数据库管理系统,在企业级应用中占据着重要地位。该文档主要介绍了Oracle的基础知识、索引详解、分区表总结以及Oracle中的锁机制等关键知识点。 文档提到了OLTP(On-Line Transaction Processing,联机事务处理)和OLAP(On-Line Analytical Processing,联机分析处理)的概念。OLTP是支持日常业务处理的系统,注重于快速查询和更新数据库,通常面向事务,强调系统的并发控制和恢复能力。而OLAP则用于支持复杂的查询和分析,更多地关注于数据仓库和数据挖掘,重点在于多维数据分析和决策支持。在OLAP系统中,分区技术和并行技术被广泛应用,用以提高查询分析的效率和响应速度。通常情况下,OLTP和OLAP在设计上会分开,以便各自优化。 接着,文档详细介绍了索引的概念、创建语法、特点以及不足之处。索引是Oracle数据库中用于提升数据检索速度的数据结构,它的创建语法相对简单,但必须根据数据的特点来选择合适的索引类型。例如,索引特点包括提高查询效率,但过多的索引会降低数据更新的性能,且占用存储空间。文档指出,在哪些情况下使用索引是不恰当的,比如在使用不等于操作符、IS NULL或IS NOT NULL语句、函数以及不匹配数据类型的比较中,索引往往不会被利用。 文档进一步阐述了索引的多种分类,包括B树索引、位图索引、HASH索引、索引组织表、反转键索引、基于函数的索引以及分区索引等。每种索引类型都适用于特定的数据处理场景,比如B树索引适用于普通的数据列,位图索引适用于低基数的列,而分区索引则可以在分区表的基础上创建,提高数据管理的灵活性。 关于分区表,文档详细解释了分区表的理论知识以及如何将普通表转换为分区表。分区表能够将数据分布在不同的分区中,从而优化查询和维护操作。文档提到了多种分区表的操作方法,包括插入、交换分区、使用在线重定义、导出导入等,并讨论了分区表索引的分类和特定问题。 文档阐述了Oracle中的锁机制。锁用于保证多用户环境下的数据完整性,防止多个事务同时修改同一数据而产生的冲突。锁的分类包括自动锁与显示锁、排它锁与共享锁、DML锁、DDL锁和系统锁。文档还讨论了死锁现象和锁引起的阻塞问题,并详细说明了Latch的概念及其与锁的区别。Latch是一种简短的锁定机制,用于保护内存结构的完整性,它与锁的主要区别在于作用范围和持续时间。 整体来看,该文档为学习Oracle的读者提供了全面而细致的知识框架,涵盖了从基础到进阶的多个方面,是Oracle学习者不可多得的参考资料。
- 粉丝: 62
- 资源: 35
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
- 3
前往页