Oracle 9i & 10g 编程艺术:深入数据库体系结构
0推荐 收藏
3.1K阅读
图灵程序设计丛书

Oracle 9i & 10g 编程艺术:深入数据库体系结构

Tom Kyte (作者) 王小振 , 苏金国 (译者)
终止销售
本书是一本关于Oracle 9i & 10g数据库体系结构的权威图书,涵盖了所有最重要的Oracle体系结构特性,包括文件、内存结构和进程,锁和闩,事务、并发和多版本,表和索引,数据类型,以及分区和并行,并利用具体的例子来充分介绍每个特性,不仅讨论了各个特性是什么,还说明了它是如何工作的,如何使用这个特性来开发软件,以及有关的常见陷阱。
本书面向从事Oracle数据库应用的所有开发人员或DBA。
纸质书
¥99.00

其他购买方式?

出版信息

同系列书

  • JavaScript高级程序设计(第4版)

    [美]马特·弗里斯比(Matt Frisbie)   李松峰   译

    本书是JavaScript经典图书的新版。第4版涵盖ECMAScript 2019,全面、深入地介绍了Java...

  • HTTP权威指南

    David Gourley   Brian Totty   Marjorie Sayer   Sailu Reddy   Anshu Aggarwal   陈涓   赵振平   译

    本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...

  • JavaScript高级程序设计(第3版)

    Nicholas C.Zakas   李松峰   曹力   译

    本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...

  • 计算机科学的基础

    Al Aho   Jeff Ullman   傅尔也   译

    本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...

  • Python编程:从入门到实践(第2版)

    埃里克·马瑟斯(Eric Matthes)   袁国忠   译

    本书是针对所有层次Python读者而作的Python入门书。全书分两部分:第一部分介绍用Python编程所必须...

目录

第1章 开发成功的Oracle应用    1
1.1 我的方法    2
1.2 黑盒方法    4
1.3 开发数据库应用的正确(和不正确)方法    8
1.3.1 了解Oracle体系结构    8
1.3.2 理解并发控制    14
1.3.3 多版本    19
1.3.4 数据库独立性?    25
1.3.5 “怎么能让应用运行得更快?”    41
1.3.6 DBA与开发人员的关系    45
1.4 小结    46
第2章 体系结构概述    47
2.1 定义数据库和实例    48
2.2 SGA和后台进程    53
2.3 连接Oracle    56
2.3.1 专用服务器    56
2.3.2 共享服务器    57
2.3.3 TCP/IP连接的基本原理    58
2.4 小结    61
第3章 文件    63
3.1 参数文件    64
3.1.1 什么是参数?    65
3.1.2 遗留的init.ora参数文件    67
3.1.3 服务器参数文件    69
3.1.4 参数文件小结    75
3.2 跟踪文件    76
3.2.1 请求的跟踪文件    77
3.2.2 针对内部错误生成的跟踪文件    80
3.2.3 跟踪文件小结    83
3.3 警告文件    83
3.4 数据文件    86
3.4.1 简要回顾文件系统机制    86
3.4.2 Oracle数据库中的存储层次体系    87
3.4.3 字典管理和本地管理的表空间    91
3.5 临时文件    93
3.6 控制文件    95
3.7 重做日志文件    95
3.7.1 在线重做日志    96
3.7.2 归档重做日志    98
3.8 密码文件    100
3.9 修改跟踪文件    103
3.10 闪回日志文件    104
3.10.1 闪回数据库    104
3.10.2 闪回恢复区    105
3.11 DMP文件(EXP/IMP文件)    106
3.12 数据泵文件    107
3.13 平面文件    110
3.14 小结    111
第4章 内存结构    113
4.1 进程全局区和用户全局区    113
4.1.1 手动PGA内存管理    114
4.1.2 自动PGA内存管理    121
4.1.3 手动和自动内存管理的选择    131
4.1.4 PGA和UGA小结    132
4.2 系统全局区    133
4.2.1 固定SGA    137
4.2.2 重做缓冲区    137
4.2.3 块缓冲区缓存    138
4.2.4 共享池    145
4.2.5 大池    148
4.2.6 Java池    149
4.2.7 流池    150
4.2.8 自动SGA内存管理    150
4.3 小结    151
第5章 Oracle进程    153
5.1 服务器进程    153
5.1.1 专用服务器连接    154
5.1.2 共享服务器连接    156
5.1.3 连接与会话    157
5.1.4 专用服务器与共享服务器    163
5.1.5 专用/共享服务器小结    166
5.2 后台进程    167
5.2.1 中心后台进程    168
5.2.2 工具后台进程    175
5.3 从属进程    178
5.3.1 I/O从属进程    178
5.3.2 并行查询从属进程    179
5.4 小结    179
第6章 锁    181
6.1 什么是锁?    181
6.2 锁定问题    184
6.2.1 丢失更新    184
6.2.2 悲观锁定    185
6.2.3 乐观锁定    187
6.2.4 乐观锁定还是悲观锁定?    197
6.2.5 阻塞    198
6.2.6 死锁    201
6.2.7 锁升级    206
6.3 锁类型    206
6.3.1 DML锁    207
6.3.2 DDL锁    215
6.3.3 闩    218
6.3.4 手动锁定和用户定义锁    226
6.4 小结    227
第7章 并发与多版本    229
7.1 什么是并发控制?    229
7.2 事务隔离级别    230
7.2.1 READ UNCOMMITTED    232
7.2.2 READ COMMITTED    233
7.2.3 REPEATABLE READ    235
7.2.4 SERIALIZABLE    237
7.2.5 READ ONLY    239
7.3 多版本读一致性的含义    240
7.3.1 一种会失败的常用数据仓库技术    240
7.3.2 解释热表上超出期望的I/O    241
7.4 写一致性    244
7.4.1 一致读和当前读    244
7.4.2 查看重启动    247
7.4.3 为什么重启动对我们很重要?    250
7.5 小结    251
第8章 事务    253
8.1 事务控制语句    254
8.2 原子性    255
8.2.1 语句级原子性    255
8.2.2 过程级原子性    257
8.2.3 事务级原子性    260
8.3 完整性约束和事务    260
8.3.1 IMMEDIATE约束    260
8.3.2 DEFERRABLE约束和级联更新    261
8.4 不好的事务习惯    263
8.4.1 在循环中提交?    264
8.4.2 使用自动提交?    270
8.5 分布式事务    271
8.6 自治事务    273
8.6.1 自治事务如何工作?    273
8.6.2 何时使用自治事务?    276
8.7 小结    279
第9章 redo与undo    281
9.1 什么是redo?    281
9.2 什么是undo?    282
9.3 redo和undo如何协作?    285
9.4 提交和回滚处理    289
9.4.1 COMMIT做什么?    289
9.4.2 ROLLBACK做什么?    296
9.5 分析redo    297
9.5.1 测量redo    298
9.5.2 redo生成和BEFORE/AFTER触发器    300
9.5.3 我能关掉重做日志生成吗?    306
9.5.4 为什么不能分配一个新日志?    310
9.5.5 块清除    312
9.5.6 日志竞争    315
9.5.7 临时表和redo/undo    317
9.6 分析undo    321
9.6.1 什么操作会生成最多和最少的undo?    321
9.6.2 ORA-01555: snapshot too old错误    323
9.7 小结    334
第10章 数据库表    335
10.1 表类型    335
10.2 术语    337
10.2.1 段    337
10.2.2 段空间管理    339
10.2.3 高水位线    340
10.2.4 freelists    342
10.2.5 PCTFREE和PCTUSED    345
10.2.6 LOGGING和NOLOGGING    348
10.2.7 INITRANS和MAXTRANS    349
10.3 堆组织表    349
10.4 索引组织表    352
10.5 索引聚簇表    368
10.6 散列聚簇表    376
10.7 有序散列聚簇表    386
10.8 嵌套表    390
10.8.1 嵌套表语法    390
10.8.2 嵌套表存储    399
10.8.3 嵌套表小结    402
10.9 临时表    402
10.10 对象表    410
10.11 小结    418
第11章 索引    421
11.1 Oracle索引概述    422
11.2 B*树索引    423
11.2.1 索引键压缩    426
11.2.2 反向键索引    429
11.2.3 降序索引    435
11.2.4 什么情况下应该使用B*树索引?    437
11.2.5 B*树小结    448
11.3 位图索引    448
11.3.1 什么情况下应该使用位图索引?    449
11.3.2 位图联结索引    453
11.3.3 位图索引小结    455
11.4 基于函数的索引    456
11.4.1 重要的实现细节    456
11.4.2 一个简单的基于函数的索引例子    457
11.4.3 只对部分行建立索引    465
11.4.4 实现有选择的惟一性    467
11.4.5 关于CASE的警告    467
11.4.6 关于ORA-01743的警告    469
11.4.7 基于函数的索引小结    470
11.5 应用域索引    470
11.6 关于索引的常见问题和神话    472
11.6.1 视图能使用索引吗?    472
11.6.2 Null和索引能协作吗?    472
11.6.3 外键是否应该加索引?    475
11.6.4 为什么没有使用我的索引?    476
11.6.5 神话:索引中从不重用空间    483
11.6.6 神话:最有差别的元素应该在最前面    486
11.7 小结    490
第12章 数据类型    491
12.1 Oracle数据类型概述    491
12.2 字符和二进制串类型    494
12.2.1 NLS概述    494
12.2.2 字符串    497
12.3 二进制串:RAW类型    504
12.4 数值类型    506
12.4.1 NUMBER类型的语法和用法    509
12.4.2 BINARY_FLOAT/BINARY_DOUBLE类型的语法和用法    513
12.4.3 非固有数值类型    513
12.4.4 性能考虑    514
12.5 LONG类型    515
12.5.1 LONG和LONG RAW类型的限制    516
12.5.2 处理遗留的LONG类型    517
12.6 DATE、TIMESTAMP和INTERVAL类型    523
12.6.1 格式    523
12.6.2 DATE类型    525
12.6.3 TIMESTAMP类型    533
12.6.4 INTERVAL类型    541
12.7 LOB 类型    544
12.7.1 内部LOB    545
12.7.2 BFILE    557
12.8 ROWID/UROWID类型    559
12.9 小结    560
第13章 分区    561
13.1 分区概述    561
13.1.1 提高可用性    562
13.1.2 减少管理负担    564
13.1.3 改善语句性能    569
13.2 表分区机制    571
13.2.1 区间分区    571
13.2.2 散列分区    574
13.2.3 列表分区    579
13.2.4 组合分区    581
13.2.5 行移动    583
13.2.6 表分区机制小结    585
13.3 索引分区    586
13.3.1 局部索引与全局索引    587
13.3.2 局部索引    587
13.3.3 全局索引    594
13.4 再论分区和性能    610
13.5 审计和段空间压缩    617
13.6 小结    618
第14章 并行执行    619
14.1 何时使用并行执行    620
14.2 并行查询    622
14.3 并行DML    628
14.4 并行DDL    631
14.4.1 并行DDL和使用外部表的数据加载    632
14.4.2 并行DDL和区段截断    634
14.5 并行恢复    643
14.6 过程并行化    643
14.6.1 并行管道函数    644
14.6.2 DIY并行化    648
14.7 小结    652
第15章 数据加载和卸载    655
15.1 SQL*Loader    655
15.1.1 用SQLLDR加载数据的FAQ    660
15.1.2 SQLLDR警告    686
15.1.3 SQLLDR小结    686
15.2 外部表    687
15.2.1 建立外部表    688
15.2.2 处理错误    693
15.2.3 使用外部表加载不同的文件    697
15.2.4 多用户问题    697
15.2.5 外部表小结    698
15.3 平面文件卸载    698
15.4 数据泵卸载    708
15.5 小结    710
索引    711
  • 只想说"经典",绝对的经典,看过很多oracle书籍,但没有哪些书能比这本好,在结构组织上,内容的深入方面都特别有逻辑,记得看 oracle 9i 参考手册,Kevin Loney说:"真正的技术来自于长期的实践,但从不轻受于人".也许这句话对了一半,kety改变了这一观念,将自己的所学毫无保留的教给其它人,应该说是值得尊敬的,再加上译者苏金国和王小振两位老师的经典翻译,可以说他们也是绝对的专家,否则不会译得这么好,也不会重现原作者的意思,内容带有幽默.真的值得珍藏,讲得太深入了,同时也告诉我们开发人员在选择和学习任何RDBMS时需要了解的核心技术是什么.希望另两本书能尽快出版,据说在kety的个人blog上说,改变了计划,还要写两本,期待中.每一位开发人员和DBA都应该拥有一本,不是看一遍,要反复的看,里边含盖了太多的思想.在数据库核心技术,如锁,并发处理,多版本等方面,让我们深入认识到oracle的核心,同时也让我们反思并去测试用的其它数据库系统,如 SQL SERVER 2005,sybase等,让我们在做开发时知道我们需要知道的是什么,真的是引起我们举一反三了,经典,绝对的经典.
    ——连振娟(摘自china-pub.com)
    teacher1  发表于 2006-12-06 22:59:09
    推荐