资源名称:Oracle高效设计

内容简介:

本书对Oracle及数据库的知识进行了全面深入的讲解,是一本关于Oracle的高级手册。本书从开发应用程序的正确方法角度,讲述Oracle的重要概念和特性,包括:性能工具包,体系结构选择,语句处理,从基于成本的优化器中获得尽可能多的信息,故障排除等内容。还包括如何编写好的Oracle应用程序所涉及的关键问题:高效的管理,高效的设计模式,高效的SQL,高效的PL/SQL程序设计。附录给出了设置和很多常用的脚本。本书内容翔实,实例丰富,语言流畅且浅显易懂,适合作为从事Oracle开发人员的参考手册。

资源目录:

译者序

前言

第1章 构建应用程序的正确方法

11 团队协作

12 阅读资料文档

121 指南的指南

122 阅读路线

13 避免黑盒综合症

131 数据库独立与数据库依赖

132 黑盒综合症的危害

14 是数据库而不是一堆数据

141 使用主键和外部键

142 测试参考完整性的开销

143 中间层检查不是万能药

15 建立测试环境

151 用有代表性的数据进行测试

152 不要用单个用户进行测试

153 不要在无菌实验室中进行测试

16 设计出性能而不是调整出性能

161 不要使用通用数据模型

162 设计自己的高效数据模型

17 开始就定义性能目标

171 在清晰明确的标准下工作

172 随时收集并记录标准

173 别因为 “所有人都知道你应该做”而做某件事情

18 测试, 测试, 再测试

181 小基准测试

182 大基准测试

19 仪表化系统

191 追踪asktomoraclecom

192 远程调试仪表化

193 使用DBMSAPPLICATIONINFO

194 在PL/SQL中使用DEBUGF

195 在应用系统中打开SQLTRACE

196 使用业内标准的API

197 建立自己的例程

198 审计不仅仅是个词

110 敢于怀疑权威

1101 当心泛泛的 “最好”

1102 怀疑 “法定” 和 “神话”

111 不要走捷径

112 保持简单

1121 考虑备选方法

1122 让数据库充分发挥自己的能力

113 使用已有的功能

1131 我们听说X特性慢

1132 我们听说X特性复杂

1133 我们不想

1134 我们以前不知道

1135 我们希望数据库独立

114 本章小结

第2章 性能工具包

21 SQL*Plus

211 建立SQL*Plus

212 定制SQL*Plus环境

213 阅读文档

22 EXPLAIN PLAN

221 设置EXPLAIN PLAN

222 使用EXPLAIN PLAN

223 如何阅读查询计划

224 避免EXPLAIN PLAN陷阱

225 使用DBMSXPLAN和V$SQLPLAN

23 AUTOTRACE

231 建立AUTOTRACE

232 使用AUTOTRACE

233 格式化AUTOTRACE的输出

234 了解AUTOTRACE的输出

235 AUTOTRACE输出中感兴趣的内容

24 TKPROF

241 启用TKPROF

242 运行TKPROF

243 读TKPROF报告

244 各种群体对TKPROF的使用

25 Runstats

251 建立Runstats

252 使用Runstats

26 Statspack

261 建立Statspack

262 使用Statspack

263 使用Statspack易犯的错误

264 Statspack概览

27 DBMSPROFILER

271 为什么要使用配置文件管理器

272 配置文件管理器的资源

28 JDeveloper (及调试)

29 本章小结

第3章 体系结构选择

31 了解共享服务器与专用服务器连接

311 专用服务器如何工作

312 共享服务器连接如何工作

313 关于共享服务器配置的常见错误观点

314 专用服务器与共享服务器小结

32 利用集群

321 RAC如何工作

322 RAC的优点

323 集群小结

33 了解何时使用分区

331 分区概念

332 神秘的分区

333 为什么使用分区

334 分区小结

34 知道何时使用并行操作

341 并行神话

342 并行管理

343 并行查询

344 并行DML

345 打造自己的并行

346 并行处理小结

35 本章小结

第4章 高效的管理

41 用SPFILE启动数据库

411 PFILE的问题

412 SPFILE如何工作

413 让数据库使用SPFILE

414 保存系统参数的改动

415 PFILE过时了吗

416 求助, 我的SPFILE坏了, 我不能启动了

417 SPFILE小结

42 让Oracle来管理你的数据文件

421 何时使用OMF

422 OMF如何工作

423 OMF小结

43 可靠的恢复

431 备份准则

432 备份和恢复小结

44 使用本地管理的表空间

441 为什么要废除DMT

442 在不知道对象会变得有多大时使用系统管理的LMT

443 在知道对象的最终尺寸时使用统一的区尺寸

444 关于LMT的某些忠告

445 LMT和DMT小结

45 让Oracle管理你的段空间

451 理解可用列表和可用列表组

452 PCTFREE和PCTUSED怎样控制可用列表

453 ASSM的案例

454 ASSM小结

46 让Oracle管理回退段

461 设置UNDORETENTION

462 UNDO表空间忠告

463 UNDO表空间小结

47 本章小章

第5章 语句处理

51 理解SQL语句的类型

52 语句怎样执行

521 分析

522 优化和行资源生成

523 执行

524 语句执行小结

53 查询的处理过程

531 快速返回的查询

532 慢速返回的查询

533 一致性读取

54 DML语句的处理

55 DDL处理

56 使用绑定变量

561 绑定变量的优点

562 对Java和VB使用绑定变量

563 每项规则都有例外

564 绑定变量窥视

57 尽可能少做分析

571 分析的成本

572 使用PL/SQL减少分析

573 把SQL移出触发器以减少分析

574 准备一次; 执行多次

58 本章小结

第6章 从基于成本的优化程序获得最大输出

61 为什么停用RBO

62 使CBO发挥最大的作用

621 调整OPTIMIZERINDEXCACHING和OPTIMIZER INDEXCOSTADJ参数

622 使用SYSTEM统计数据

63 优化CBO

631 为升级设置COMPATIBLE

632 设置DBFILEMULTIBLOCK READCOUNT以减少全扫描的成本

633 设置HASHJOINENABLED控制散列连接

634 设置OPTIMIZERDYNAMICSAMPLING动态收集统计数据

635 设置OPTIMIZERFEATURESENABLE制特性选择

636 设置OPTIMIZERMAX PERMUTATIONS控制排列

637 设置OPTIMIZERMODE选择模式

638 用QUERYREWRITEENABLED和QUERYREWRITEINTEGRITYT重写查询

639 用BITMAPMERGEAREA SIZE、SORTAREASIZE、HAS HAREASIZE控制PGA内存

6310 对星查询使用STAR TRANSFORMATIONENABLED

6311 设置影响优化程序的其他几个参数

64 使用10053事件跟踪CBO选择

65 本章小结

第7章 高效的模式设计

71 基本模式设计原则

711 让数据库实现数据完整性

712 使用正确的数据类型

713 对最经常提的问题进行优化

72 表类型概述

73 B*树索引集群表

731 创建群

732 使用群

733 群小结

74 索引组织表

741 用IOT替代关联表以节省空间

742 利用IOT集中放置随机插入的数据

743 IOT小结

75 外部表

751 建立外部表

752 修改外部表

753 将外部表用于直接路径装载

754 将外部表用于并行直接路径装载

755 将外部表用于合并

756 处理外部表的错误

76 索引技术

761 使用FBI——打破常规

762 使用域索引

77 压缩

771 使用索引键压缩

772 对于只读或主要是读的表进行表压缩

773 压缩小结

78 本章小结

第8章 高效的SQL

81 编写高效SQL所需的知识

82 访问路径

821 全扫描

822 ROWID访问

823 索引扫描

824 群扫描

83 连接概念

831 嵌套循环

832 散列连接

833 排序合并连接

834 笛卡儿连接

835 反连接

836 全外部连接

84 模式问题(物理的)

85 真正理解SQL

851 ROWNUM伪列

852 标量子查询

853 分析函数

86 不调整查询

861 理解问题

862 概念验证的例子

87 其他SQL技术概览

88 本章小结

第9章 高效的PL/SQL程序设计

91 为什么要使用PL/QL

911 PL/SQL是数据操纵的最高效语言

912 PL/SQL具有可移植性和可重用性

92 尽可能少地编写代码

921 不用程序实现

922 让代码行数适合于屏幕显示

93 使用程序包

931 程序包的优点

932 断开依赖链

933 程序包小结

94 使用静态SQL

941 静态SQL的优点

942 寻找替换动态SQL的机会

943 静态SQL小结

95 批量处理

951 使用批量处理效果很好时再使用它

952 对ETL操作使用BULK处理

953 批量处理小结

96 返回数据

961 ref游标的优点

962 使用ref游标返回结果集

97 使用%TYPE和%ROWTYPE

971 基于表的记录类型

972 基于游标的记录类型

973 基于列的数据类型

98 使用调用者的权限

981 调用者权限和多模式

982 调用者权限的条件

99 使查找高效地工作

991 查找的单行取

992 查找的批量处理

993 查找的单语句操作

994 查找小结

910 当心独立事务处理

9101 独立事务处理的条件

9102 独立事务处理会影响数据完整性

911 选择使用隐式游标还是显式游标

9111 将隐式游标用于单行选择

9112 对有限行数的结果集使用隐式游标

9113 隐式/显式游标小结

912 本章小结

第10章 故障排除

101 找出差异

1011 开始收集今天的历史记录

1012 侦探性工作

102 一次只更改一样东西

103 更改一样东西要有充分理由

1031 有目标

1032 验证你的假设

104 能够恢复到更改前的状态

105 建立测试用例

1051 测试用例需求

1052 使测试用例尽可能小

106 本章小结

附录 设置和一些脚本

资源截图:

Oracle高效设计