Oracle Database 9i/10g/11g编程艺术

Oracle Database 9i/10g/11g编程艺术 pdf epub mobi txt 电子书 下载 2026

出版者:人民邮电出版社
作者:Thomas Kyte
出品人:
页数:706
译者:苏金国
出版时间:2011-1-1
价格:109.00元
装帧:平装
isbn号码:9787115244857
丛书系列:图灵程序设计丛书·数据库系列
图书标签:
  • oracle
  • 数据库
  • Oracle
  • Database
  • DBA
  • 计算机
  • 11g
  • 编程
  • Oracle
  • 数据库
  • PLSQL
  • SQL
  • 编程
  • 9i
  • 10g
  • 11g
  • 开发
  • 技术
想要找书就要到 小哈图书下载中心
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

无论你是开发人员还是DBA,要创建和管理稳定、高质量的Oracle系统,归根结底都需要理解Oracle数据库的体系结构。

本书是公认的Oracle数据库权威指南,凝聚了世界顶尖的Oracle专家Thomas Kyte数十年的宝贵经验和真知灼见。书中深入分析了Oracle数据库体系结构,包括文件、内存结构以及构成Oracle数据库和实例的底层进程,利用具体示例讨论了一些重要的数据库主题,如锁定、并发控制、事务等。同时分析了数据库中的物理结构,如表、索引和数据类型,并介绍采用哪些技术能最优地使用这些物理结构。本书在上一版的基础上做了大量增补,以涵盖11g最受关注的多项特性,尤其针对数据加密的途径进行了详细的阐释。

作者简介

Thomas Kyte Oracle公司核心技术集团副总裁。从5.1.1c版本开始使用Oracle,自7.0.9版本发布就一直任职于Oracle公司,帮助Oracle数据库用户设计和构建系统,或者对系统进行重构和调优。此前曾是一位系统集成师,主要为美国军方和政府部门的客户构建大规模的异构数据库和应用。长期主持Oracle Magazine “Ask Tom”专栏,热心回答困扰全世界Oracle开发人员和DBA的各种问题。除本书外,还著有广受好评的《Oracle专家高级编程》和《Oracle高效设计》。

目录信息

第1章 开发成功的Oracle应用 1
1.1 我的方法 2
1.2 黑盒方法 3
1.3 开发数据库应用的正确(和不正确)方法 10
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数据库中的存储层次体系 87
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 一种会失败的常用数据仓库技术 229
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代码块中的COMMIT 249
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 什么操作会生成最多和最少的undo 299
9.6.2 ORA-01555: snapshot too old 错误 301
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*树索引 396
11.2.5 B*树小结 405
11.3 位图索引 406
11.3.1 什么情况下应该使用位图索引 407
11.3.2 位图联结索引 410
11.3.3 位图索引小结 413
11.4 基于函数的索引 413
11.4.1 重要的实现细节 413
11.4.2 一个简单的基于函数的索引例子 414
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 神话:最有差别的元素应该在最前面 438
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_DOUBLE类型的语法和用法 460
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类型 469
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和使用外部表的数据加载 567
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加载数据的常见问题 592
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
· · · · · · (收起)

读后感

评分

这本书不是一个系统路线走,而是挑oracle一些难点走,把一些重点提出来讲解,就当作是作者的笔记,内容还可以,值得看看,比国内那些什么书不知道好多少倍,有些国内大牛虽然技术是好,但是写的书真不敢恭维。  

评分

《Oracle9i&10g编程艺术--深入数据库体系结构》即为《Expert one to one oracle》的升级版本,不过升级后可能会变为三本书,这本书强调的是深入数据库体系结构的讲解,本书的作者Thomas Kyte(即Tom)无疑是Oracle界最为知名的人物,而这本书可以说基本是专为开发人员而写的,因...  

评分

这本书确实不错,值得一买,我也买了:) 到目前发现的问题: 1 部分内容和新版Oracle不尽相符,比如最一开始配置环境里介绍的login.sql里面设置sqlplus提示符的方法在我实验的Oracle10.2上无法运行,上网搜索一下,发现其实有简便也可用多的方法做同样的事。 2 有些内容观点鲜...  

评分

久负盛名的Oracle经典 世界顶级专家Thomas Kyte力作 Ask Tom!解决你所有的Oracle疑难杂症 图书详情和购买地址:http://www.china-pub.com/197444  

评分

第一次这本书大概在2年前,读完之后,自我感觉对oracle的理解上了一个层次。这两年来,在实践的过程也应用到了很多内容。但是这段时间重读了这本书之后,又有新的收获,特别上之前对redo和undo这块内容不是特别了解,还有就压缩方面的技术,索引优化等部分的内容,有了新的认识...  

用户评价

评分

说实话,这本书的某些章节的阅读体验更像是啃一块坚硬的牛排,需要极大的耐心和反复咀嚼。特别是涉及PL/SQL编译过程和锁机制的那几章,即便是对于一个有数年经验的DBA来说,也充满了挑战性。我不得不承认,初次阅读时,我跳过了不少关于内部哈希表实现和事务隔离级别在不同引擎下的具体表现的细节,感觉自己像是在走夜路,摸索着前进。然而,正是这种“硬核”的内容,让这本书的价值在实际工作中愈发出显现。有一次,我们系统遭遇了难以解释的死锁问题,翻遍了手册和论坛都无果,最终是书中对“等待事件”和“锁的升级路径”的精辟分析,让我茅塞顿开,找到了问题的根源。作者似乎深知读者的痛点,他并没有回避那些枯燥且复杂的理论,而是将其系统化、逻辑化地呈现出来。这本书不是用来“速读”的,它更像是一部需要长期供奉在案头的参考典籍,每次重读都会有新的领悟,每一次调试都会从中找到可以引用的理论支撑。这种经得起时间考验的深度,是如今许多轻量级教程所无法比拟的。

评分

我对这本书的某些特定章节,比如关于Oracle的“延迟段段落”和“缓冲区缓存管理”的论述印象极其深刻。与其他书籍只是简单提及这些术语不同,作者深入挖掘了它们在特定版本(如9i到11g迁移过程中)是如何演变的,以及它们对I/O效率的微妙影响。我记得书中对比了早期版本中直接读取文件和后期版本中通过V$视图观察到的缓存命中率的差异,这种对比分析非常具有说服力。我当时正在负责一个遗留系统的升级项目,这个系统的数据量庞大,性能瓶颈始终难以突破。在应用了书中提到的关于调整DBWR进程写回策略的建议后,系统的平均响应时间有了肉眼可见的改善。这本书的作者似乎拥有某种“透视眼”,能够看到其他人都忽略掉的那些系统调优的魔鬼细节。它不仅仅停留在告诉我们“怎么做”,更重要的是解释了“为什么这样做是最好的”。这种对底层逻辑的尊重和深入剖析,使得这本书成为我工具箱里不可替代的“瑞士军刀”。

评分

从整体的叙事风格来看,这本书散发出一种严谨、甚至略带古典的学术气息,这与当前市场上流行的那种轻快、碎片化的技术读物形成了鲜明的对比。它要求读者投入时间去理解其内在的逻辑链条,每一个概念都是前一个概念的自然延伸和深化。我记得在阅读有关“优化器执行计划生成”的部分时,作者详尽地描述了代价模型是如何计算的,每一步的估算都基于统计数据的收集和索引的选择。这种对“为什么”的执着探索,让我对Oracle优化器产生了前所未有的敬畏感。它教会我的不仅仅是如何写出“能跑的”SQL,更是如何写出“最优的”SQL。每次遇到棘手的查询性能问题,我都会重新翻阅这本书的相应章节,总能从中找到新的启发点,也许是漏看了某个CBO参数的默认值,也许是忽略了某个直方图设置的边界条件。这本书的价值在于它构建了一个完整的知识体系,让你不再仅仅依赖于‘EXPLAIN PLAN’的输出,而是能够真正理解优化器选择该路径的深层原因,这是一种质的飞跃。

评分

这本书的实用性体现在其对不同版本特性的兼容性处理上。我们团队使用的环境横跨了9i到11g的多个子版本,以往的技术资料往往需要我们自行比对不同版本间的SQL语法差异和新特性引入带来的影响。这本书的独特之处在于,它将这些跨版本的变化点以非常清晰的图表形式进行了汇总和比较,使得我们这些需要维护异构环境的工程师能够快速定位到特定版本下的最优实践。我特别欣赏作者在处理“数据迁移和兼容性”章节时的谨慎态度,他没有盲目推崇最新版本的功能,而是详尽分析了升级过程中可能遇到的陷阱,例如数据字典视图的变化、PL/SQL编译器的严格性增强等。这让我在制定年度维护计划时,有了一个非常可靠的风险评估依据。这本书的结构设计,使得即便是只关注特定版本特性的读者,也能高效地找到所需内容,而无需被其他版本的信息所干扰,体现了极高的阅读效率和专业性。

评分

这本书的排版和装帧真是让人眼前一亮,那种沉甸甸的质感,翻开书页时纸张散发出的淡淡油墨香,一下子就把我拉回了那个数据库技术飞速发展的黄金时代。我记得当初拿到这本书的时候,正是对Oracle数据库的内部机制充满了好奇与困惑,总觉得官方文档晦涩难懂,而市面上其他书籍又大多停留在CRUD操作的表层。这本书的章节组织非常巧妙,它没有急于展示复杂的SQL技巧,而是花了大量的篇幅去剖析数据库的“骨架”——存储结构、内存管理以及后台进程的协同工作方式。我尤其欣赏作者在阐述那些底层概念时所采用的类比,比如将数据块比作图书馆的书架,将SGA比作中央办公室,这种形象化的描述极大地降低了理解难度。阅读过程中,我常常会停下来,对照自己正在维护的生产环境进行思考,书中对不同版本间细微差异的标注也体现了作者深厚的实战经验。它不仅仅是一本技术手册,更像是一位资深架构师在手把手地带领你参观这个庞大系统的内部构造,让你从“使用者”的心态转变为“设计者”的视角。这本书的深度和广度,在同类书籍中是极为罕见的,它为我后续的性能调优工作奠定了坚实的基础。

评分

读完,你就推开了Oracle大师的殿堂之门。想深入研究数据库也必须读的书。深入、全面。Thomas Kyte,一个语不惊人死不休的大师!

评分

Tom经典,学Oracle的应该是人手一本吧。

评分

大师作品

评分

很经典的一本oracle数据库书籍,深入、全面的讲解了ORacle的体系结构,以及多种技术概念的原理。

评分

很经典的一本oracle数据库书籍,深入、全面的讲解了ORacle的体系结构,以及多种技术概念的原理。

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 qciss.net All Rights Reserved. 小哈图书下载中心 版权所有