Oracle Database 9i/10g/11g编程艺术|在线阅读-高飞网
Oracle Database 9i/10g/11g编程艺术
 /  747
  • 第1章 开发成功的Oracle应用 1
  • 1.1 我的方法 2
  • 1.2 黑盒方法 3
  • 1.3 开发数据库应用的正确(和不正...
  • 1.3.1 了解Oracle体系结构 11
  • 1.3.2 理解并发控制 19
  • 1.3.3 多版本控制 22
  • 1.3.4 数据库独立性 28
  • 1.3.5 怎么能让应用运行得更快 42
  • 1.3.6 DBA与开发人员的关系 44
  • 1.4 小结 45
  • 第2章 体系结构概述 46
  • 2.1 定义数据库和实例 47
  • 2.2 SGA和后台进程 52
  • 2.3 连接Oracle 54
  • 2.3.1 专用服务器 54
  • 2.3.2 共享服务器 56
  • 2.3.3 TCP/IP连接的基本原理 57
  • 2.4 小结 59
  • 第3章 文件 60
  • 3.1 参数文件 61
  • 3.1.1 什么是参数 62
  • 3.1.2 遗留的init.ora参数文件 65
  • 3.1.3 服务器参数文件 67
  • 3.1.4 参数文件小结 72
  • 3.2 跟踪文件 73
  • 3.2.1 请求的跟踪文件 74
  • 3.2.2 针对内部错误生成的跟踪文件 78
  • 3.2.3 跟踪文件小结 82
  • 3.3 警告文件 83
  • 3.4 数据文件 85
  • 3.4.1 简要回顾文件系统机制 86
  • 3.4.2 Oracle数据库中的存储层次体...
  • 3.4.3 字典管理和本地管理的表空间 90
  • 3.5 临时文件 92
  • 3.6 控制文件 94
  • 3.7 重做日志文件 94
  • 3.7.1 在线重做日志 95
  • 3.7.2 归档重做日志 97
  • 3.8 密码文件 99
  • 3.9 修改跟踪文件 102
  • 3.10 闪回日志 103
  • 3.10.1 闪回数据库 103
  • 3.10.2 闪回恢复区 104
  • 3.11 DMP文件(EXP/IMP文件) 104
  • 3.12 数据泵文件 105
  • 3.13 平面文件 108
  • 3.14 小结 109
  • 第4章 内存结构 110
  • 4.1 进程全局区和用户全局区 110
  • 4.1.1 手动PGA内存管理 111
  • 4.1.2 自动PGA内存管理 117
  • 4.1.3 手动和自动内存管理的选择 127
  • 4.1.4 PGA和UGA小结 129
  • 4.2 系统全局区 129
  • 4.2.1 固定SGA 133
  • 4.2.2 重做缓冲区 134
  • 4.2.3 块缓冲区缓存 135
  • 4.2.4 共享池 141
  • 4.2.5 大池 143
  • 4.2.6 Java池 144
  • 4.2.7 流池 145
  • 4.2.8 自动SGA内存管理 145
  • 4.2.9 自动内存管理 147
  • 4.3 小结 148
  • 第5章 Oracle进程 149
  • 5.1 服务器进程 149
  • 5.1.1 专用服务器连接 150
  • 5.1.2 共享服务器连接 152
  • 5.1.3 数据库常驻连接池 152
  • 5.1.4 连接与会话 153
  • 5.1.5 专用服务器与共享服务器 158
  • 5.1.6 专用/共享服务器小结 161
  • 5.2 后台进程 162
  • 5.2.1 中心后台进程 163
  • 5.2.2 工具后台进程 171
  • 5.3 从属进程 173
  • 5.3.1 I/O从属进程 173
  • 5.3.2 Pnnn:并行查询执行服务器 174
  • 5.4 小结 175
  • 第6章 锁和闩 176
  • 6.1 什么是锁 176
  • 6.2 锁定问题 179
  • 6.2.1 丢失更新 179
  • 6.2.2 悲观锁定 180
  • 6.2.3 乐观锁定 182
  • 6.2.4 乐观锁定还是悲观锁定 188
  • 6.2.5 阻塞 188
  • 6.2.6 死锁 191
  • 6.2.7 锁升级 195
  • 6.3 锁类型 195
  • 6.3.1 DML锁 196
  • 6.3.2 DDL锁 204
  • 6.3.3 闩 209
  • 6.3.4 手动锁定和用户定义锁 217
  • 6.4 小结 218
  • 第7章 并发与多版本控制 219
  • 7.1 什么是并发控制 219
  • 7.2 事务隔离级别 220
  • 7.2.1 READ UNCOMMITTED 221
  • 7.2.2 READ COMMITTED 223
  • 7.2.3 REPEATABLE READ 224
  • 7.2.4 SERIALIZABLE 226
  • 7.2.5 READ ONLY 228
  • 7.3 多版本控制读一致性的含义 229
  • 7.3.1 一种会失败的常用数据仓库技...
  • 7.3.2 解释热表上超出期望的I/O 230
  • 7.4 写一致性 233
  • 7.4.1 一致读和当前读 233
  • 7.4.2 查看重启动 235
  • 7.4.3 为什么重启动对我们很重要 238
  • 7.5 小结 239
  • 第8章 事务 240
  • 8.1 事务控制语句 240
  • 8.2 原子性 242
  • 8.2.1 语句级原子性 242
  • 8.2.2 过程级原子性 244
  • 8.2.3 事务级原子性 247
  • 8.2.4 DDL与原子性 247
  • 8.3 持久性 247
  • 8.3.1 COMMIT的WRITE扩展 248
  • 8.3.2 非分布式PL/SQL代码块中的CO...
  • 8.4 完整性约束和事务 250
  • 8.4.1 IMMEDIATE约束 251
  • 8.4.2 DEFERRABLE约束和级联更新 251
  • 8.5 不好的事务习惯 255
  • 8.5.1 在循环中提交 255
  • 8.5.2 使用自动提交 261
  • 8.6 分布式事务 261
  • 8.7 自治事务 263
  • 8.7.1 自治事务如何工作 264
  • 8.7.2 何时使用自治事务 265
  • 8.8 小结 268
  • 第9章 redo与undo 269
  • 9.1 什么是redo 269
  • 9.2 什么是undo 270
  • 9.3 redo和undo如何协作 273
  • 9.4 提交和回滚处理 277
  • 9.4.1 COMMIT做什么 277
  • 9.4.2 ROLLBACK做什么 283
  • 9.5 分析redo 284
  • 9.5.1 测量redo 284
  • 9.5.2 能关掉重做日志生成程序吗 286
  • 9.5.3 为什么不能分配一个新日志 289
  • 9.5.4 块清除 291
  • 9.5.5 日志竞争 294
  • 9.5.6 临时表和redo/undo 296
  • 9.6 分析undo 299
  • 9.6.1 什么操作会生成最多和最少的...
  • 9.6.2 ORA-01555: snapshot too ol...
  • 9.7 小结 310
  • 第10章 数据库表 311
  • 10.1 表类型 311
  • 10.2 术语 313
  • 10.2.1 段 313
  • 10.2.2 段空间管理 315
  • 10.2.3 高水位线 316
  • 10.2.4 FREELIST 317
  • 10.2.5 PCTFREE和PCTUSED 320
  • 10.2.6 LOGGING和NOLOGGING 323
  • 10.2.7 INITRANS和MAXTRANS 324
  • 10.3 堆组织表 324
  • 10.4 索引组织表 327
  • 10.5 索引聚簇表 340
  • 10.6 散列聚簇表 347
  • 10.7 有序散列聚簇表 355
  • 10.8 嵌套表 357
  • 10.8.1 嵌套表语法 358
  • 10.8.2 嵌套表存储 364
  • 10.8.3 嵌套表小结 367
  • 10.9 临时表 368
  • 10.10 对象表 374
  • 10.11 小结 380
  • 第11章 索引 382
  • 11.1 Oracle索引概述 382
  • 11.2 B*树索引 384
  • 11.2.1 索引键压缩 386
  • 11.2.2 反向键索引 389
  • 11.2.3 降序索引 394
  • 11.2.4 什么情况下应该使用B*树索...
  • 11.2.5 B*树小结 405
  • 11.3 位图索引 406
  • 11.3.1 什么情况下应该使用位图索...
  • 11.3.2 位图联结索引 410
  • 11.3.3 位图索引小结 413
  • 11.4 基于函数的索引 413
  • 11.4.1 重要的实现细节 413
  • 11.4.2 一个简单的基于函数的索引...
  • 11.4.3 只对部分行建立索引 422
  • 11.4.4 实现有选择的唯一性 424
  • 11.4.5 关于ORA-01743的警告 424
  • 11.4.6 基于函数的索引小结 425
  • 11.5 应用域索引 425
  • 11.6 关于索引的常见问题和神话 426
  • 11.6.1 视图能使用索引吗 427
  • 11.6.2 Null和索引能协作吗 427
  • 11.6.3 外键是否应该加索引 429
  • 11.6.4 为什么没有使用我的索引 430
  • 11.6.5 神话:索引中从不重用空间 435
  • 11.6.6 神话:最有差别的元素应该...
  • 11.7 小结 441
  • 第12章 数据类型 442
  • 12.1 Oracle数据类型概述 442
  • 12.2 字符和二进制串类型 444
  • 12.2.1 NLS概述 445
  • 12.2.2 字符串 448
  • 12.3 二进制串:RAW类型 453
  • 12.4 数值类型 455
  • 12.4.1 NUMBER类型的语法和用法 457
  • 12.4.2 BINARY_FLOAT/BINARY_DOUBL...
  • 12.4.3 非固有数值类型 461
  • 12.4.4 性能考虑 461
  • 12.5 LONG类型 463
  • 12.5.1 LONG和LONG RAW类型的限制 463
  • 12.5.2 处理遗留的LONG类型 464
  • 12.6 DATE、TIMESTAMP和INTERVAL类...
  • 12.6.1 格式 469
  • 12.6.2 DATE类型 470
  • 12.6.3 TIMESTAMP类型 475
  • 12.6.4 INTERVAL类型 482
  • 12.7 LOB 类型 484
  • 12.7.1 内部LOB 485
  • 12.7.2 BFILE 495
  • 12.8 ROWID/UROWID类型 497
  • 12.9 小结 497
  • 第13章 分区 499
  • 13.1 分区概述 499
  • 13.1.1 提高可用性 500
  • 13.1.2 减少管理负担 502
  • 13.1.3 改善语句性能 505
  • 13.2 表分区机制 507
  • 13.2.1 区间分区 508
  • 13.2.2 散列分区 510
  • 13.2.3 列表分区 513
  • 13.2.4 间隔分区 515
  • 13.2.5 引用分区 520
  • 13.2.6 组合分区 524
  • 13.2.7 行移动 526
  • 13.2.8 表分区机制小结 528
  • 13.3 索引分区 529
  • 13.3.1 局部索引与全局索引 530
  • 13.3.2 局部索引 530
  • 13.3.3 全局索引 535
  • 13.4 再论分区和性能 547
  • 13.5 审计和段空间压缩 552
  • 13.6 小结 553
  • 第14章 并行执行 555
  • 14.1 何时使用并行执行 556
  • 14.2 Oracle Exadata 558
  • 14.3 并行查询 558
  • 14.4 并行DML 564
  • 14.5 并行DDL 566
  • 14.5.1 并行DDL和使用外部表的数据...
  • 14.5.2 并行DDL和区段截断 568
  • 14.6 并行恢复 576
  • 14.7 过程并行化 577
  • 14.7.1 并行管道函数 578
  • 14.7.2 DIY并行化 580
  • 14.7.3 老式DIY并行化 583
  • 14.8 小结 587
  • 第15章 数据加载和卸载 588
  • 15.1 SQLLDR 588
  • 15.1.1 用SQLLDR加载数据的常见问...
  • 15.1.2 SQLLDR警告 613
  • 15.1.3 SQLLDR小结 614
  • 15.2 外部表 614
  • 15.2.1 建立外部表 615
  • 15.2.2 处理错误 619
  • 15.2.3 使用外部表加载不同的文件 622
  • 15.2.4 多用户问题 623
  • 15.2.5 外部表小结 624
  • 15.3 平面文件卸载 624
  • 15.4 数据泵卸载 631
  • 15.5 小结 633
  • 第16章 数据加密 634
  • 16.1 加密类型 634
  • 16.1.1 动态数据 634
  • 16.1.2 静态数据 635
  • 16.1.3 手动应用加密 638
  • 16.1.4 Oracle钱夹 639
  • 16.1.5 透明列级加密 641
  • 16.1.6 透明表空间加密 644
  • 16.2 加密不是访问控制 646
  • 16.3 实现手动应用加密 647
  • 16.3.1 避免使用手动方法的原因 648
  • 16.3.2 手动方法的性能影响 648
  • 16.3.3 何时使用手动方法 652
  • 16.4 实现列级加密 652
  • 16.4.1 如何使用列级加密 653
  • 16.4.2 列级加密的数据存储 653
  • 16.4.3 测量列级加密的性能影响 657
  • 16.4.4 影响大小 657
  • 16.4.5 列级加密的限制 662
  • 16.5 实现表空间加密 663
  • 16.5.1 如何使用表空间加密 663
  • 16.5.2 表空间加密的数据存储 664
  • 16.5.3 测量表空间加密的性能影响 665
  • 16.6 决定采用哪种加密技术 670
  • 16.7 小结 671
  • 索引 672