第一图书网

Oracle数据库管理之道

林树泽,历铁帅,何会军 编著 清华大学出版社
出版时间:

2012-8  

出版社:

清华大学出版社  

作者:

林树泽,历铁帅,何会军 编著  

页数:

804  

字数:

1325000  

Tag标签:

无  

内容概要

  本书以Oracle数据库高阶技术为主,版本跨越9i\10g\11g,详细讲解了各种重要概念以及相关知识点,使得读者从新的层面和角度理解Oracle技术内涵,其中原理架构的讲解更侧重数据库管理和优化的内容,从系统层面看待架构的组成以及各类组件的作用。
  本书讲解了当前Oracle的主流技术,如基于SOA理念的RAC,用于灾备的DG,以及优化技术,内容覆盖Oracle几乎所有重要的知识点,用于全面系统地学习Oracle、获得技术提升以及知识拓展,书中穿插了作者(OCM)学习Oracle的心得,以及作为DBA经常思考的问题,以期望与读者共鸣。
  对于准备OCM考试的读者,Oracle
DBA,以及打算系统深入学习Oracle的读者,本书都是很好的必备书籍和手头工具书。

书籍目录

第1章 创建Oracle数据库
 1.1 创建数据库的前提条件
 1.2 创建数据库的方法
 1.3 使用DBCA创建数据库
  1.3.1 DBCA概述
  1.3.2 创建数据库过程
  1.3.3 理解建库脚本的含义
 1.4 使用安装程序自动创建数据库
 1.5 手工建库
  1.5.1 手工建库的步骤以及注意事项
  1.5.2 Linux系统上的手工建库实例
 1.6 本章小结
第2章 Oracle数据库体系结构
 2.1 Oracle体系结构概述
 2.2 Oracle数据库体系结构
  2.2.1 Oracle服务器和实例
  2.2.2 Oracle数据库物理结构(文件组成)
  2.2.3 Oracle数据库参数文件和密码文件
 2.3 数据库连接(connection)与会话(session)
  2.3.1 数据库连接(connection)
  2.3.2 会话(session)
 2.4 Oracle数据库内存结构
  2.4.1 共享池(shared pool)
  2.4.2 数据库高速缓冲区(database buffer
cache)
  2.4.3 重做日志高速缓冲区(redo buffer cache)
  2.4.4 大池(large pool)和Java池
  2.4.5 流池(Streaming pool)
  2.4.6 PGA(进程全局区)和UGA(用户全局区)
  2.4.7 如何获得内存缓冲区的信息
 2.5 Oracle服务器进程和用户进程
 2.6 Oracle数据库后台进程
  2.6.1 系统监控进程(SMON)
  2.6.2 进程监控进程(PMON)
  2.6.3 数据库写进程(DBWR)
  2.6.4 重做日志写进程(LGWR)
  2.6.5 归档日志进程(ARCH)
  2.6.6 校验点进程(checkpoint process)
 2.7 本章小结
第3章 网络配置管理
 3.1 Oracle的网络连接
 3.2 服务器端监听器配置
  3.2.1 动态注册
  3.2.2 静态注册
  3.2.3 连接测试
  3.2.4 监听程序管理
 3.3 客户端配置
  3.3.1 本地命名
  3.3.2 简单命名
 3.4 Oracle数据库服务器支持的两种连接方式
  3.4.1 服务器进程
  3.4.2 共享连接
  3.4.3 共享连接涉及初始化参数
  3.4.4 共享连接的工作过程
  3.4.5 共享连接的配置
  3.4.6 共享连接的一些问题
  3.4.7 专有连接
 3.5 本章小结
第4章 管理和维护表
 4.1 Oracle基本的数据存储机制-表
  4.1.1 数据的存储类型
  4.1.2 行ID(ROWID)
 4.2 创建表
  4.2.1 Oracle创建表的规则
  4.2.2 创建普通表
  4.2.3 创建临时表
 4.3 段空间管理
 4.4 理解高水位线(HWM)
 4.5 行迁移
 4.6 创建索引组织表(IOT)
  4.6.1 IOT表的结构
  4.6.2 创建IOT表
 4.7 表参数以及参数维护
 4.8 维护列
 4.9 删除和截断表
 4.10 本章小结
第5章 索引
 5.1 索引的概念
 5.2 Oracle实现数据访问的方法
  5.2.1 全表扫描(FULL TABLE SCAN--FTS)
  5.2.2 通过行ID(ROWID)
  5.2.3 使用索引
 5.3 索引扫描类型
  5.3.1 索引唯一扫描(INDEX UNIQUE SCAN)
  5.3.2 索引范围扫描(INDEX RANGE SCAN)
  5.3.3 索引全扫描(INDEX FULL SCAN)
  5.3.4 索引全扫描(INDEX FULL SCAN)
 5.4 限制索引使用的情况
  5.4.1 使用不等于运算符
  5.4.2 使用 IS NULL或IS NOT NULL
  5.4.3 使用函数
  5.4.4 比较不匹配的数据类型
 5.5 集群因子
 5.6 二元高度
 5.7 直方图
 5.8 建立索引
 5.9 查看索引
 5.10 B树索引
  5.10.1 B树索引的工作原理
  5.10.2 B树索引的注意事项
 5.11 位图索引
  5.11.1 位图索引的使用讨论
  5.11.2 创建位图索引
  5.11.3 B位图索引的插入问题
 5.12 Hash索引
 5.13 反向键索引
 5.14 基于函数的索引
 5.15 监控索引的使用
 5.16 重建索引
 5.17 维护索引
 5.18 删除索引
 5.19 本章小结
第6章 审计与安全
 6.1 审计的5个层次
  6.2.1 强制审计
  6.2.2 标准数据库审计
  6.2.3 使用触发器定制审计
  6.2.4 精细化审计
  6.2.5 对DBA的审计
 6.3 虚拟专用数据库
  6.3.1 应用程序上下文
  6.3.2 创建应用程序上下文
  6.3.3 创建用于FGAC的函数
 6.4 基于列的VPD
 6.5 本章小结
第7章 全球化支持
 7.1 理解什么是字符集
 7.2 数据库字符集
 7.3 服务器端字符集
 7.4 客户端字符集
 7.5 数据库字符集与客户端字符集的转换
 7.6 本章小结
第8章 重做日志管理
 8.1 Oracle为何引入重做日志
 8.2 读取重做日志文件信息
  8.2.1 v$log视图
  8.2.2 v$logfile视图
  8.2.3 判断是否归档
  8.2.4 设置数据库为归档模式
 8.3 重做日志组及其管理
  8.3.1 添加重做日志组
  8.3.2 删除联机重做日志组
 8.4 重做日志成员及维护
  8.4.1 添加重做日志成员
  8.4.2 删除联机重做日志成员
  8.4.3 重设联机重做日志的大小
 8.5 清除联机重做日志
 8.6 日志切换和检查点事件
 8.7 归档重做日志
 8.8 本章小结
第9章 UNDO表空间管理
 9.1 引入还原段的作用
 9.2 还原段如何完成读一致性
  9.2.1 Oracle如何实现读一致性
  9.2.2 读一致性的进一步复杂化分析
  9.2.3 读一致性的具体步骤
 9.3 还原段的实例恢复与事务回滚
 9.4 UNDO SEGMENT的选择算法
 9.5 讨论undo_retention参数
 9.6 还原段分类
 9.7 Oracle的自动还原段管理
 9.8 创建还原表空间
 9.9 维护还原表空间
 9.10 切换还原表空间
  9.10.1 UNOD表空间切换示例
  9.10.2 UNOD表空间切换涉及状态
  9.10.3 删除UNDO表空间示例
 9.11 dba_undo_extents数据字典
 9.12 本章小结
第10章 表空间管理
 10.1 Oracle数据库的逻辑结构
 10.2 SEGMENT管理方式
  10.2.1 段空间的手动管理
  10.2.2 段空间的自动管理
 10.3 表空间的分类以及创建表空间
 10.4 表空间磁盘管理的两种方案
  10.4.1 数据字典管理的表空间磁盘管理
  10.4.2 本地管理的表空间磁盘管理
 10.5 表空间分类
  10.5.1 永久表空间
  10.5.2 临时表空间
 10.6 创建表空间
  10.6.1 创建数据字典管理的表空间
  10.6.2 创建本地管理的表空间
  10.6.3 创建还原表空间
  10.6.4 创建临时表空间
  10.6.5 临时表空间组
  10.6.6 默认临时表空间
  10.6.7 创建大文件表空间
  10.6.8 创建非标准块表空间
 10.7 表空间管理
  10.7.1 表空间的三种状态
  10.7.2 脱机管理
  10.7.3 只读管理
 10.8 表空间和数据文件管理
  10.8.1 修改表空间大小
  10.8.2 修改表空间的存储参数
  10.8.3 删除表空间
  10.8.4 迁移数据文件
  10.8.5 数据字典和本地管理的表空间
 10.9 本章小结
第11章 分区技术
 11.1 分区技术概述
 11.2 分区技术的优势
 11.3 分区表分类
  11.3.1 分区键和分区表
  11.3.2 范围分区
  11.3.3 列表分区
  11.3.4 哈希分区
  11.3.5 组合分区
 11.4 分区键修改引起的问题
 11.5 实例分析分区技术的优势
  11.5.1 提高可用性
  11.5.2 减少维护负担
  11.5.3 改善SQL语句性能
 11.6 索引分区
  11.6.1 本地前缀分区索引
  11.6.2 本地非前缀分区索引
  11.6.3 全局分区索引
 11.7 分区的维护
  11.7.1 新增分区
  11.7.2 移动分区
  11.7.3 截断分区
  11.7.4 删除分区
  11.7.5 拆分分区
  11.7.6 合并分区
  11.7.7 分区交换
 11.8 本章小结
第12章 GridControl的安装、配置与使用
 12.1 GridControl概述
 12.2 深入GridControl架构
 12.3 部署GridControl的准备工作
 12.4 安装GridControl
  12.4.1 安装OMS
  12.4.2 安装GC代理
  12.4.3 启动GC管理数据库的功能
 12.5 管理 GridControl
  12.5.1 管理Agent
  12.5.2 管理OMS
 12.6 GridControl的管理特性
  12.6.1 连接到GC
  12.6.2 GC的管理特性
 12.7 本章小结
第13章 资源管理
 13.1 Oracle数据库的资源
 13.2 资源管理器可管理的资源
 13.3 使用资源管理器创建资源计划
  13.3.1 分析默认的三个资源计划
  13.3.2 创建资源计划的方法
 13.4 创建资源计划实例
 13.5 启动、停止资源计划实例
 13.6 本章小结
第14章 调度管理
 14.1 调度程序的组件
 14.2 调度程序的体系架构
  14.2.1 调度架构
  14.2.2 执行调度程序的权限
 14.3 创建基于时间的调度任务
  14.3.1 创建程序(program)
  14.3.2 创建调度(Schedule)
  14.3.3 创建作业(Job)
 14.4 创建基于事件的调度任务
 14.5 调度的高级部件
  14.5.1 Job类
  14.5.2 Window
 14.6 本章小结
第15章 RAC真应用集群
 15.1 单实例数据库并发控制原理
  15.1.1 并发访问的数据不一致问题
  15.1.2 事务以及隔离级别
  15.1.3 支持并发的lock机制
  15.1.4 支持并发的latch机制
  15.1.5 Lock和Latch的使用
 15.2 RAC并发控制的实现
  15.2.1 RAC的并发控制问题
  15.2.2 RAC的实现并发访问
 15.3 Oracle为何引入RAC
 15.4 RAC集群简介
  15.4.1 集群分类
  15.4.2 RAC环境的特殊问题
  15.4.3 RAC集群
 15.5 RAC架构详解
 15.6 RAC与Clusterware
 15.7 安装RAC
  15.7.1 设计RAC应用环境
  15.7.2 确认安装的软件组件
  15.7.3 任务规划
  15.7.4 安装虚拟机
  15.7.5 在虚拟机上安装linux操作系统
  15.7.6 配置主机
  15.7.7 安装Clusterware
  15.7.8 安装数据库软件
  15.7.9 启动监听
  15.7.10 创建ASM
  15.7.11 创建数据库
 15.8 Failover和Load balance测试
  15.8.1 Failover失败转移
  15.8.2 LoadBalance负载均衡
 15.9 本章小结
第16章 ASM自动存储管理
 16.1 Oracle自动存储管理概述
 16.2 自动存储管理的优点
 16.3 ASM系统架构
 16.4 ASM和CSS集群同步服务
 16.5 创建ASM实例
 16.6 关闭和启动ASM实例
 16.7 理解ASM实例架构
 16.8 ASM命令行管理工具
 16.9 管理ASM磁盘组
  16.9.1 使用ASM磁盘组管理文件的优势
  16.9.2 创建磁盘组
  16.9.3 向磁盘组添加磁盘
  16.9.4 删除磁盘和磁盘组
  16.9.5 平衡磁盘组
  16.9.6
MOUNT和DISMOUNT磁盘组
 16.10 管理ASM文件
  16.10.1 ASM磁盘组文件名结构
  16.10.2 ASM磁盘组中目录管理
  16.10.3 添加和删除别名
  16.10.4 删除文件
  16.10.5 使用ASM文件模板
 16.11 使用RMAN将数据库迁移到ASM实例
 16.12 管理ASM的数据字典视图
 16.13 本章小结
第17章 管理Clusterware组件及管理指令
 17.1 Clusterware及其组件
 17.2 备份和恢复VotingDisks
 17.3 添加和删除VotingDisks
 17.4 备份和恢复OCR
  17.4.1 从自动备份中恢复OCR
  17.4.2 从人工备份文件中恢复
 17.5 修改OCR存储配置信息
 17.6 删除OCR存储
 17.7 ocrconfig指令功能汇总
 17.8 管理Clusterware指令
  17.8.1 srvctl指令
  17.8.2 crs_stat指令
  17.8.3 onsctl指令
  17.8.4 crsctl指令
  17.8.5 ocrcheck指令
  17.8.6 ocrdump指令
  17.8.7 oifcfg指令
  17.8.8 olsnodes指令
 17.9 本章小结
第18章 DataGuard的安装与管理
 18.1 DataGuard是什么
 18.2 DataGuard体系结构
  18.2.1 DataGuard的架构
  18.2.2 DataGuard的后台进程
 18.3 DataGuard配置及相关概念
 18.4 DataGuard服务本质
  18.4.1 Apply服务
  18.4.2 Redo 应用
  18.4.3 SQL 应用
  18.4.4 角色转换服务
 18.5 DataGuard的保护模式
 18.6 DataGuard的优点
 18.7 手工搭建物理DataGuard
 18.8 物理DataGuard的SWITCHOVER
 18.9 物理DataGuard的FAILOVER
 18.10 如何转换FAILOVER后的主库为新备库
 18.11 管理物理Standby数据库
  18.11.1 启动Standby数据库
  18.11.2 关闭Standby数据库
  18.11.3
Primary数据库结构变化的传播
  18.11.4 自动传播数据文件和表空间的变化
  18.11.5 手工修改数据文件和表空间的变化
  18.11.6 重命名数据文件
  18.11.7 添加或删除重做日志组
  18.11.8
监控DataGuard数据库视图
  18.11.9 设置DataGuard保护模式
 18.12 DataGuard broker
  18.12.1 DataGuard
Broker概述
  18.12.2 DataGuard
Broker的配置
  18.12.3 DataGuard
Broker的组件
  18.12.4 DataGuard
Broker的DMON进程
  18.12.5 DataGuard
Broker使用的前提条件
  18.12.6 DataGuard
Broker配置实例演示
  18.12.7 DataGuard
Broker的完成物理DG的SWITCHOVER
  18.12.8 DataGuard
Broker实现DG的自动FAILOVER
  18.12.9 DG的DGMGRL维护指令置
 18.13 DataGuard 的日志传输服务
  18.13.1 通过ARCn进程来传送Redo
  18.13.2 LGWR进程同步传送Redo
  18.13.3 LGWR进程异步传送Redo
 18.14 本章小结
第19章 RMAN备份与恢复数据库
 19.1 RMAN概述
 19.2 RMAN的独特之处
 19.3 RMAN系统架构详解
 19.4 快闪恢复区(flash recovery area)
  19.4.1 修改快闪恢复区大小
  19.4.2 解决快闪恢复区的空间不足问题
 19.5 建立RMAN到数据库的连接
 19.6 RMAN的相关概念与配置参数
 19.7 RMAN备份控制文件
 19.8 RMAN实现脱机备份
 19.9 RMAN联机备份
  19.9.1 联机备份前的准备工作
  19.9.2 联机备份整个数据库
  19.9.3 联机备份一个表空间
  19.9.4 联机备份一个数据文件
  19.9.5 RMAN备份坏块处理方式
 19.10 RMAN的增量备份
 19.11 快速增量备份
 19.12 在映像副本上应用增量备份
 19.13 创建和维护恢复目录
 19.14 RMAN的脚本管理
 19.15 使用RMAN非归档模式下的完全恢复
  19.15.1
控制文件、数据文件以及重做日志文件丢失的恢复
  19.15.2 只有数据文件丢失的恢复
  19.15.3
联机重做日志文件和数据文件损坏的恢复
  19.15.4
如何将数据文件恢复到其他磁盘目录下
 19.16 使用RMAN归档模式下的完全恢复
  19.16.1 非系统表空间损坏的恢复
  19.16.1 系统表空间损坏的恢复
  19.16.1 所有数据文件丢失的恢复
 19.17 RMAN实现数据块恢复
 19.18 RMAN的备份维护指令
  19.18.1 RMAN的VALIDATE
BACKUPSET指令
  19.18.2
RMAN的RESTORE…VALIDATE指令
  19.18.3
RMAN的RESTORE…PREVIEW指令
  19.18.4 RMAN的LIST指令
  19.18.5 RMAN的REPORT指令
 19.19 本章小结
第20章 手工管理的备份恢复
 20.1 备份恢复的概念
  20.1.1 物理备份
  20.1.2 逻辑备份
  20.1.3 冷备份与热备份
  20.1.4 数据库恢复
 20.2 非归档模式下的冷备与恢复
  20.2.1 冷备的步骤
  20.2.2 冷备下的恢复
  20.2.3 缺少重做日志文件的恢复方法
 20.3 归档模式与非归档模式
  20.3.1 设置数据库的归档模式
  20.3.2 设置归档进程相关参数
  20.3.3 管理归档文件和归档目录
 20.4 手工热备数据库的步骤
 20.5 热备过程中对数据库崩溃的处理方法
 20.6 热备的原理
 20.7 备份控制文件
 20.8 介质恢复的原理
 20.9 归档模式下的完全恢复
  20.9.1 数据文件在有备份情况下的恢复
  20.9.2 数据文件在无备份情况下的恢复
  20.9.3 系统表空间数据文件损坏的完全恢复
  20.9.4 当前UNDO表空间损坏的完全恢复
  20.9.5
非当前UNDO表空间损坏的完全恢复
 20.10 何时使用不完全恢复
  20.10.1 不完全恢复的场合
  20.10.2 不完全恢复的类型
 20.11 所有控制文件丢失的恢复方法
  20.11.1 使用备份的控制文件
  20.11.2 重建控制文件
 20.12 本章小结
第21章 Oracle闪回技术
 21.1 理解闪回级别
 21.2 闪回数据库
  21.2.1 闪回数据库概述
  21.2.2 启用闪回数据库
  21.2.3 关闭闪回数据库
  21.2.4 闪回数据库方法
  21.2.5 使用闪回数据库
  21.2.6 监控闪回数据库
  21.2.7 使用闪回数据库的限制
 21.3 闪回删除
  21.3.1 闪回删除原理
  21.3.2 回收站的使用
  21.3.3 恢复删除的表
  21.3.4 恢复多个同名的表
  21.3.5 应用Purge永久删除表
 21.4 闪回表
 21.5 闪回版本查询
 21.6 闪回事务查询
 21.7 闪回查询
 21.8 复原点技术
 21.9 本章小结
第22章 数据迁移-EXP/IMP
 22.1 关于备份的几个概念
 22.2 使用EXP指令实现逻辑备份
  22.2.1 EXP指令详解
  22.2.2 不带参数的EXP 备份
  22.2.3 EXP指令导出整个数据库
  22.2.4 EXP指令导出特定的表
  22.2.5 EXP指令导出指定的用户
  22.2.6 EXP指令导出特定的表空间
 22.3 使用IMP指令实现逻辑恢复
  22.3.1 IMP指令详解
  22.3.2 IMP指令恢复整个数据库
  22.3.3 IMP指令恢复特定的表
  22.3.4 IMP指令恢复指定的用户
 22.4 使用EXP/IMP实现传输表空间
  22.4.1 理解Big/Little
Endian
  22.4.2 传输表空间的限制
  22.4.3 传输表空间的兼容性问题
  22.4.4 传输表空间的自包含特性
  22.4.5 实现传输表空间的步骤
  22.4.6
使用EXP/IMP实现同平台表空间迁移
  22.4.7
使用EXP/IMP实现跨平台表空间迁移
 22.5 本章小结
第23章 数据迁移-EXPDP IMPDP
 23.1 数据泵导出(EXPDP)简介
  23.1.1 数据泵导入导出技术的结构
  23.1.2 数据泵导入导出技术的优点
  23.1.3 数据泵导入导出的目录对象
 23.2 数据泵导入导出与EXP/IMP技术的区别
 23.3 数据泵导出(EXPDP)数据库实例
  23.3.1 数据泵导入的参数含义
  23.3.2 数据泵导入数据库实例
 23.4 数据泵导入数据库实例
  23.4.1 数据泵导入概述及参数含义
  23.4.2 数据泵导入数据库实例
 23.5 使用数据泵迁移表空间
 23.6 使用数据泵生成外部表
 23.7 本章小结
第24章 基于CBO的SQL优化
 24.1 性能调整方法
 24.2 SQL查询处理过程详解
  24.2.1 语法分析
  24.2.2 语句优化
  24.2.3 查询执行
 24.3 基于成本的优化
  24.3.1 选择CBO的优化方式
  24.3.2 优化器工作过程
 24.4 自动统计数据
 24.5 手工统计数据库数据
 24.6 统计操作系统数据
 24.7 手工统计字典数据
 24.8 主动优化SQL语句
  24.8.1 WHERE谓词的注意事项
  24.8.2 SQL语句优化工具
  24.8.3 使用索引
  24.8.4 索引类型及使用时机
  24.8.5 使用绑定变量
  24.8.6 消除子查询优化SQL语句
 24.9 被动优化SQL语句
  24.9.1 使用分区表
  24.9.2 使用表和索引压缩
  24.9.3 保持CBO的稳定性
  24.9.4 创建合适的索引
 24.10 详解V$SQL视图
 24.11 本章小结
第25章 Oracle数据库实例优化
 25.1 详解SGA与实例优化
 25.2 将程序常驻内存
  25.2.1
创建软件包DBMS_SHARED_POOL
  25.2.2 将程序常驻内存的过程
  25.2.3
从DBMSPOOL脚本理解软件包DBMS_SHARED_POOL
 25.3 将数据常驻内存
  25.3.1 再论数据块缓存池
  25.3.2 将数据常驻内存的过程
  25.3.3 将常驻内存的程序恢复为默认缓冲池
 25.4 优化重做日志缓冲区
  25.4.1 深入理解重做日志缓冲区的工作机制
  25.4.2 重做日志缓冲区相关的等待事件
  25.4.3 设置重做日志缓冲区大小
 25.5 优化共享池(Shared Pool)
  25.5.1 库高速缓存
  25.5.2 使用绑定变量
  25.5.3
调整参数CURSOR_SHARING
  25.5.4 设置共享池的大小
 25.6 优化数据库高速缓存
  25.6.1 调整数据库缓冲区大小
  25.6.2 使用缓冲池
 25.7 优化PGA内存
 25.8 本章小结
第26章 Statspack与AWR
 26.1 安装
 26.2 设置Statspack相关参数
 26.3 statspack数据收集
  26.3.1
STATSPACK收集统计数据的原理
  26.3.2 创建性能数据报表
  26.3.3 自动收集性能报告
 26.4 初步分析STATSPACK性能报告
 26.5 AWR是什么
 26.6 管理AWR
  26.6.1
DBMS_WORKLOAD_REPOSITORY包的使用
  26.6.2
AWR快照与STATISTICS_LEVEL参数的关系
  26.6.3 手工创建AWR快照
  26.6.4 清除AWR快照
  26.6.5 修改AWR快照参数
  26.6.6 创建和删除AWR快照基线
  26.6.7 创建AWR报告
 26.7 ASH是AWR的补充
 26.8 创建并分析ASH报告
 26.9 AWR与ADDM的关系
 26.10 本章小结
 

章节摘录

版权页: 插图: 查询处理与查询优化是两个相关联的概念,查询处理时执行SQL语句获得数据的过程,而查询优化是通过分析SQL语句以及其他资源获得最佳执行计划的过程,最佳的执行计划是指消耗资源最少的执行计划,这些资源包括数据库服务器的CPU和系统I/O。我们先来看一个SQL语句查询处理的全过程,按照不同的处理阶段,这个过程可以分为三个阶段即:语法分析阶段、语句优化阶段和查询执行阶段。 24.2.1语法分析 语法分析在SGA中完成,在语法分析过程中,8QL语句被分解为关系代数查询,通过分析这个关系代数查询来验证SQL语句的语法和语义是否正确,如SQL语句中的关键是否正确,涉及的表定义以及相关的列是否存在,是否具有对该表的SQL语句中的操作权限等。当然这些是通过数据字典完成的(数据字典存储在共享池中),如果这些检查都顺利通过,则该SQL语句的分析完成,此时进入第二个阶段即获得最佳执行计划阶段。 24.2.2语句优化 在该阶段Oracle默认使用基于成本的优化程序(CBO)来选择最好的执行计划,这个“最好”的标准就是消耗系统资源诸如CPU以及I/O资源最少。其间CBO使用系统收集的统计数据做出判断,至于如何获得这些统计数据在基于成本的优化中再详细介绍。 在SQL语句优化阶段,Oracle将语法分析树转换为一个逻辑查询,然后将逻辑查询转换为物理查询计划。此时的物理查询计划往往不只一种,因为优化器会生成几个有效地查询计划,然后会针对具体的操作对象如表或索引对每个物理查询计划做出成本消耗评估,只有消耗诸如CPU、内存以及I/O最小的执行计划才被确定为最佳执行计划,该计划由查询引擎执行,此时就进入查询执行阶段。


图书封面

图书标签Tags

广告

下载页面


Oracle数据库管理之道 PDF格式下载



挺好的,质量价格都很好


除了喜欢无话可说,好书,不解释,看了久知道。


翻看了下,书的内容没得说,Oracle基础的管理知识都包括在里面了,讲得也算详实。唯一让我感不到足的地方就是,行文措词方面有待改善,还有很多地方有错别字。可能是书的内容太多,写作起来比较累吧,但是就连前言上都有两处错别字,看着就有点不舒服了。学习Oracle的人应当是细心严谨的才对。希望能在将来推出第二版,把不足之处补过,好的地方加强。


相关图书