《Oracle高效设计 design and build high-performance oracle applications》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)Thomas Kyte著;钟鸣,郝玉洁等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2006
  • ISBN:7111178114
  • 页数:496 页
图书介绍:本书对Oracle及数据库的知识进行了全面深入的讲解,是一本关于Oracle的高级手册。

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

1.1 团队协作 2

1.2 阅读资料文档 4

1.2.1 指南的指南 5

1.2.2 阅读路线 7

1.3 避免黑盒综合症 7

1.3.1 数据库独立与数据库依赖 8

1.3.2 黑盒综合症的危害 8

1.4 是数据库而不是一堆数据 17

1.4.1 使用主键和外部键 17

1.4.2 测试参考完整性的开销 17

1.4.3 中间层检查不是万能药 19

1.5 建立测试环境 21

1.5.1 用有代表性的数据进行测试 21

1.5.2 不要用单个用户进行测试 23

1.6.1 不要使用通用数据模型 24

1.6 设计出性能而不是调整出性能 24

1.5.3 不要在无菌实验室中进行测试 24

1.6.2 设计自己的高效数据模型 26

1.7 开始就定义性能目标 29

1.7.1 在清晰明确的标准下工作 29

1.7.2 随时收集并记录标准 30

1.7.3 别因为“所有人都知道你应该做”而做某件事情 30

1.8 测试,测试,再测试 31

1.8.1 小基准测试 31

1.8.2 大基准测试 33

1.9 仪表化系统 35

1.9.1 追踪asktom.oracle.com 35

1.9.2 远程调试仪表化 36

1.9.3 使用DBMS_APPLICATION_INFO 37

1.9.4 在PL/SQL中使用DEBUG.F 37

1.9.5 在应用系统中打开SQL_TRACE 38

1.9.6 使用业内标准的API 39

1.9.7 建立自己的例程 39

1.10 敢于怀疑权威 40

1.9.8 审计不仅仅是个词 40

1.10.1 当心泛泛的“最好” 41

1.10.2 怀疑“法定”和“神话” 41

1.11 不要走捷径 43

1.12 保持简单 44

1.12.1 考虑备选方法 44

1.12.2 让数据库充分发挥自己的能力 44

1.13 使用已有的功能 47

1.13.1 我们听说X特性慢 47

1.13.3 我们不想 49

1.13.2 我们听说X特性复杂 49

1.13.4 我们以前不知道 50

1.13.5 我们希望数据库独立 50

1.14 本章小结 52

第2章 性能工具包 53

2.1 SQL*Plus 54

2.1.1 建立SQL*Plus 55

2.1.2 定制SQL*Plus环境 55

2.2 EXPLAIN PLAN 57

2.1.3 阅读文档 57

2.2.1 设置EXPLAIN PLAN 58

2.2.2 使用EXPLAIN PLAN 58

2.2.3 如何阅读查询计划 60

2.2.4 避免EXPLAIN PLAN陷阱 63

2.2.5 使用DBMS_XPLAN和V$SQL_PLAN 65

2.3 AUTOTRACE 66

2.3.1 建立AUTOTRACE 67

2.3.2 使用AUTOTRACE 67

2.3.3 格式化AUTOTRACE的输出 68

2.3.4 了解AUTORACE的输出 69

2.3.5 AUTOTRACE输出中感兴趣的内容 70

2.4 TKPROF 89

2.4.1 启用TKPROF 89

2.4.2 运行TKPROF 90

2.4.3 读TKPROF报告 91

2.4.4 各种群体对TKPROF的使用 95

2.5 Runstats 100

2.5.1 建立Runstats 101

2.5.2 使用Runstats 104

2.6 Statspack 107

2.6.1 建立Statspack 108

2.6.2 使用Statspack 108

2.6.3 使用Statspack易犯的错误 109

2.6.4 Statspack概览 110

2.7 DBMS PROFILER 114

2.7.1 为什么要使用配置文件管理器 114

2.7.2 配置文件管理器的资源 116

2.8 JDeveloper(及调试) 116

2.9 本章小结 120

第3章 体系结构选择 121

3.1 了解共享服务器与专用服务器连接 122

3.1.1 专用服务器如何工作 122

3.1.2 共享服务器连接如何工作 124

3.1.3 关于共享服务器配置的常见错误观点 126

3.2 利用集群 127

3.1.4 专用服务器与共享服务器小结 127

3.2.1 RAC如何工作 128

3.2.2 RAC的优点 131

3.2.3 集群小结 132

3.3 了解何时使用分区 132

3.3.1 分区概念 132

3.3.2 神秘的分区 134

3.3.3 为什么使用分区 138

3.4 知道何时使用并行操作 139

3.3.4 分区小结 139

3.4.1 并行神话 140

3.4.2 并行管理 142

3.4.3 并行查询 143

3.4.4 并行DML 145

3.4.5 打造自己的并行 145

3.4.6 并行处理小结 147

3.5 本章小结 148

第4章 高效的管理 149

4.1.2 SPFILE如何工作 150

4.1 用SPFILE启动数据库 150

4.1.1 PFILE的问题 150

4.1.3 让数据库使用SPFILE 151

4.1.4 保存系统参数的改动 151

4.1.5 PFILE过时了吗 151

4.1.6 求助,我的SPFILE坏了,我不能启动了 151

4.1.7 SPFILE小结 154

4.2 让Oracle来管理你的数据文件 154

4.2.1 何时使用OMF 154

4.2.2 OMF如何工作 155

4.2.3 OMF小结 156

4.3 可靠的恢复 157

4.3.1 备份准则 157

4.3.2 备份和恢复小结 159

4.4 使用本地管理的表空间 159

4.4.1 为什么要废除DMT 160

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

4.4.3 在知道对象的最终尺寸时使用统一的区尺寸 162

4.4.4 关于LMT的某些忠告 163

4.4.5 LMT和DMT小结 167

4.5 让Oracle管理你的段空间 167

4.5.1 理解可用列表和可用列表组 167

4.5.2 PCTFREE和PCTUSED怎样控制可用列表 171

4.5.3 ASSM的案例 171

4.5.4 ASSM小结 173

4.6 让Oracle管理回退段 173

4.6.1 设置UNDO_RETENTION 174

4.6.2 UNDO表空间忠告 176

4.6.3 UNDO表空间小结 177

4.7 本章小结 177

第5章 语句处理 178

5.1 理解SQL语句的类型 179

5.2 语句怎样执行 179

5.2.1 分析 179

5.2.2 优化和行资源生成 184

5.2.3 执行 185

5.2.4 语句执行小结 186

5.3 查询的处理过程 187

5.3.1 快速返回的查询 187

5.3.2 慢速返回的查询 188

5.3.3 一致性读取 190

5.4 DML语句的处理 193

5.5 DDL处理 194

5.6 使用绑定变量 195

5.6.1 绑定变量的优点 196

5.6.2 对Java和VB使用绑定变量 203

5.6.3 每项规则都有例外 207

5.6.4 绑定变量窥视 210

5.7 尽可能少做分析 213

5.7.1 分析的成本 213

5.7.2 使用PL/SQL减少分析 216

5.7.3 把SQL移出触发器以减少分析 223

5.7.4 准备一次;执行多次 226

5.8 本章小结 227

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

6.1 为什么停用RBO 229

6.2 使CBO发挥最大的作用 231

6.2.1 调整OPTIMIZER_INDEX_CACHING和OPTIMIZER_INDEX_COST_ADJ参数 231

6.2.2 使用SYSTEM统计数据 234

6.3 优化CBO 241

6.3.1 为升级设置COMPATIBLE 241

6.3.2 设置DB_FILE_MULTIBLOCK_READ_COUNT以减少全扫描的成本 242

6.3.4 设置OPTIMIZER_DYNAMIC_SAMPLING动态收集统计数据 246

6.3.3 设置HASH_JOIN_ENABLED控制散列连接 246

6.3.5 设置OPTIMIZER_FEATURES_ENABLE控制特性选择 252

6.3.6 设置OPTIMIZER_MAX_PERMUTATIONS控制排列 253

6.3.7 设置OPTIMIZER_MODE选择模式 255

6.3.8 用QUERY_REWRITE_ENABLED和QUERY_REWRITEINTEGRITY重写查询 264

6.3.9 用BITMAP MERGE AREASIZE、SORT_AREA_SIZE、HASH_AREA_SIZE控制PGA内存 269

6.3.10 对星查询使用STAR_TRANSFORMATION_ENABLED 272

6.3.11 设置影响优化程序的其他几个参数 272

6.4 使用10053事件跟踪CBO选择 273

6.5 本章小结 276

第7章 高效的模式设计 278

7.1 基本模式设计原则 279

7.1.1 让数据库实现数据完整性 279

7.1.2 使用正确的数据类型 283

7.1.3 对最经常提的问题进行优化 286

7.2 表类型概述 287

7.3 B*树索引集群表 288

7.3.1 创建群 289

7.3.2 使用群 291

7.3.3 群小结 300

7.4 索引组织表 301

7.4.1 用IOT替代关联表以节省空间 301

7.4.2 利用IOT集中放置随机插入的数据 302

7.4.3 IOT小结 305

7.5 外部表 305

7.5.1 建立外部表 306

7.5.2 修改外部表 308

7.5.3 将外部表用于直接路径装载 309

7.5.4 将外部表用于并行直接路径装载 310

7.5.5 将外部表用于合并 310

7.5.6 处理外部表的错误 311

7.6 索引技术 313

7.6.1 使用FBI——打破常规 313

7.6.2 使用域索引 318

7.7 压缩 321

7.7.1 使用索引键压缩 321

7.7.2 对于只读或主要是读的表进行表压缩 326

7.7.3 压缩小结 334

7.8 本章小结 334

第8章 高效的SQL 336

8.1 编写高效SQL所需的知识 337

8.2 访问路径 337

8.2.1 全扫描 338

8.2.2 ROWID访问 343

8.2.3 索引扫描 344

8.3.1 嵌套循环 351

8.3 连接概念 351

8.2.4 群扫描 351

8.3.2 散列连接 353

8.3.3 排序合并连接 356

8.3.4 笛卡儿连接 358

8.3.5 反连接 360

8.3.6 全外部连接 364

8.4 模式问题(物理的) 367

8.5 真正理解SQL 369

8.5.1 ROWNUM伪列 371

8.5.2 标量子查询 383

8.5.3 分析函数 391

8.6 不调整查询 408

8.6.1 理解问题 408

8.6.2 概念验证的例子 409

8.7 其他SQL技术概览 411

8.8 本章小结 412

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

9.1.1 PL/SQL是数据操纵的最高效语言 414

9.1 为什么要使用PL/SQL 414

9.1.2 PL/SQL具有可移植性和可重用性 416

9.2 尽可能少地编写代码 417

9.2.1 不用程序实现 419

9.2.2 让代码行数适合于屏幕显示 420

9.3 使用程序包 420

9.3.1 程序包的优点 421

9.3.2 断开依赖链 421

9.3.3 程序包小结 426

9.4 使用静态SQL 426

9.4.1 静态SQL的优点 426

9.4.2 寻找替换动态SQL的机会 427

9.4.3 静态SQL小结 429

9.5 批量处理 429

9.5.1 使用批量处理效果很好时再使用它 429

9.5.2 对ETL操作使用BULK处理 431

9.6.1 ref游标的优点 436

9.6 返回数据 436

9.5.3 批量处理小结 436

9.6.2 使用ref游标返回结果集 437

9.7 使用%TYPE和%ROWTYPE 441

9.7.1 基于表的记录类型 441

9.7.2 基于游标的记录类型 444

9.7.3 基于列的数据类型 446

9.8 使用调用者的权限 447

9.8.2 调用者权限的条件 448

9.8.1 调用者权限和多模式 448

9.9 使查找高效地工作 449

9.9.1 查找的单行取 451

9.9.2 查找的批量处理 453

9.9.3 查找的单语句操作 455

9.9.4 查找小结 456

9.10 当心独立事务处理 457

9.10.1 独立事务处理的条件 457

9.10.2 独立事务处理会影响数据完整性 457

9.11.1 将隐式游标用于单行选择 459

9.11 选择使用隐式游标还是显式游标 459

9.11.2 对有限行数的结果集使用隐式游标 465

9.11.3 隐式/显式游标小结 466

9.12 本章小结 466

第10章 故障排除 468

10.1 找出差异 469

10.1.1 开始收集今天的历史记录 471

10.1.2 侦探性工作 472

10.3.1 有目标 473

10.3 更改一样东西要有充分理由 473

10.2 一次只更改一样东西 473

10.3.2 验证你的假设 474

10.4 能够恢复到更改前的状态 476

10.5 建立测试用例 476

10.5.1 测试用例需求 476

10.5.2 使测试用例尽可能小 477

10.6 本章小结 478

附录 设置和一些脚本 479