Oracle编程艺术 深入理解数据库体系结构(第3版)

《Oracle编程艺术 深入理解数据库体系结构(第3版)》

  • 出版社:人民邮电出版社
  • ISBN:9787115419576
  • 版次:1
  • 商品编码:11928008
  • 品牌:iTuring
  • 包装:平装
  • 开本:16开
  • 出版时间:2016-04-01
  • 用纸:胶版纸
  • 页数:694
  • 字数:1192000
基本介绍书籍目录点评信息
  • 书籍内容

      本书是一本关于Oracle数据库体系结构的图书,涵盖了所有重要的Oracle体系结构特性,包括文件、内存结构和进程,锁和闩,事务、并发和多版本,表和索引,数据类型,分区和并行,以及数据加密等,并利用具体的例子来全面介绍每个特性,不仅讨论了各个特性是什么,还说明了它是如何工作的,如何使用这个特性来开发软件,以及有关的常见陷阱。本书的读者对象是数据库开发人员。

    编辑推荐

      Ask Tom!数据库技术大佬经典畅销书新版凝聚专家数十年的宝贵经验和真知灼见公认的Oracle数据库指南针对Oracle 12c阐述云架构之美Oracle中国架构师和研发人员倾心翻译不止于技,更传授道,值得你一读再读本书深入分析了Oracle数据库体系结构,包括文件、内存结构以及构成Oracle数据库和实例的底层进程,利用具体示例讨论了一些重要的数据库主题,同时分析了数据库中的物理结构,如表、索引和数据类型,并介绍采用哪些技术能使用这些物理结构。新版在前两版的基础上,增加了针对Oracle Database 12c诸多特性的介绍。新增内容重点关注12c的云架构,以及可插拔式数据库的应用。

    作者简介

      Thomas Kyte,Oracle数据库大师,长期主持Oracle Magazine “Ask Tom”专栏,热心回答困扰全世界Oracle开发人员和DBA的各种问题。曾任Oracle公司核心技术集团副总裁。从5.1.5c版本开始使用Oracle,自7.0.9版本发布至2015年8月一直任职于Oracle公司,帮助Oracle数据库用户设计和构建系统,或者对系统进行重构和调优。此前他曾是一位系统集成师,主要为美国军方和政府部门的客户构建大规模的异构数据库和应用。Darl Kuhn,Oracle公司DBA,同时也在美国瑞吉斯大学教授Oracle相关课程。他乐于分享知识,著有多本数据库相关书籍,如《深入理解Oracle 12c数据库管理(第2版)》《Oracle Database 12c性能优化攻略》等。
  • 第1章 开发成功的Oracle应用  1
    1.1 我的方法  2
    1.2 黑盒方法  3
    1.3 开发数据库应用的正确(和不正确)方法  11
    1.3.1 了解Oracle体系结构  11
    1.3.2 理解并发控制  21
    1.3.3 多版本控制  25
    1.3.4 数据库独立性  31
    1.3.5 怎么能让应用运行得更快45
    1.3.6 DBA与开发人员的关系  48
    1.4 小结  48
    第2章 体系结构概述  50
    2.1 定义数据库和实例  51
    2.2 连接Oracle  59
    2.2.1 专用服务器  59
    2.2.2 共享服务器  61
    2.2.3 TCP/IP连接的基本原理  63
    2.3 可插拔式数据库  65
    2.3.1 降低资源用量  66
    2.3.2 降低维护开销  66
    2.4 可插拔式数据库的不同之处  67
    2.5 小结  67
    第3章 文件  68
    3.1 参数文件  69
    3.1.1 什么是参数  70
    3.1.2 init.ora参数文件  73
    3.1.3 服务器参数文件  75
    3.2 跟踪文件  82
    3.2.1 计划内的、由用户请求所产生的跟踪文件  83
    3.2.2 针对内部错误生成的跟踪文件  88
    3.2.3 跟踪文件小结  92
    3.3 警告文件  92
    3.4 数据文件  95
    3.4.1 简要回顾文件系统机制  96
    3.4.2 Oracle数据库中的存储层次体系  97
    3.4.3 字典管理和本地管理的表空间  100
    3.5 临时文件  102
    3.6 控制文件  104
    3.7 重做日志文件  104
    3.7.1 在线重做日志  105
    3.7.2 归档重做日志  107
    3.8 密码文件  108
    3.9 修改跟踪文件  111
    3.10 闪回日志  112
    3.10.1 闪回数据库  112
    3.10.2 快速恢复区  113
    3.11 DMP文件(EXP/IMP 文件)  114
    3.12 数据泵文件  115
    3.13 平面文件  117
    3.14 小结  118
    第4章 内存结构  119
    4.1 进程全局区和用户全局区  120
    4.1.1 手动PGA内存管理  121
    4.1.2 自动PGA内存管理  127
    4.1.3 如何选择手动和自动内存管理  137
    4.1.4 PGA和UGA小结  138
    4.2 系统全局区  138
    4.2.1 固定SGA 区  143
    4.2.2 重做缓冲区  143
    4.2.3 块缓冲区缓存  145
    4.2.4 共享池  151
    4.2.5 大池  153
    4.2.6 Java池  154
    4.2.7 流池  155
    4.2.8 SGA内存管理  155
    4.3 小结  160
    第5章 Oracle 进程  161
    5.1 服务器进程  161
    5.1.1 专用服务器连接  162
    5.1.2 共享服务器连接  164
    5.1.3 数据库常驻连接池  165
    5.1.4 连接与会话  165
    5.1.5 专用服务器、共享服务器和数据库常驻连接池  170
    5.1.6 专用/共享服务器小结  173
    5.2 后台进程  174
    5.2.1 特定任务后台进程  175
    5.2.2 工具后台进程  185
    5.3 从属进程  188
    5.3.1 I/O从属进程  188
    5.3.2 Pnnn:并行查询执行服务器  189
    5.4 小结  189
    第6章 锁和闩  190
    6.1 什么是锁  190
    6.2 锁的问题  193
    6.2.1 丢失更新  193
    6.2.2 悲观锁  194
    6.2.3 乐观锁  195
    6.2.4 乐观锁还是悲观锁  201
    6.2.5 阻塞  202
    6.2.6 死锁  205
    6.2.7 锁升级  209
    6.3 锁类型  209
    6.3.1 DML锁  210
    6.3.2 DDL锁  219
    6.3.3 闩  223
    6.3.4 互斥锁  231
    6.3.5 手动锁定和用户定义锁  232
    6.4 小结  233
    第7章 并发与多版本控制  234
    7.1 什么是并发控制  234
    7.2 事务隔离级别  235
    7.2.1 READ UNCOMMITTED  236
    7.2.2 READ COMMITTED  238
    7.2.3 REPEATABLE READ  239
    7.2.4 SERIALIZABLE  241
    7.2.5 READ ONLY  243
    7.3 多版本读一致性的含义  244
    7.3.1 数据仓库中一种常见但有问题的方法  244
    7.3.2 解释热表上超出期望的I/O  245
    7.4 写一致性  247
    7.4.1 一致读和当前读  248
    7.4.2 查看重启动  250
    7.4.3 为什么重启动对我们很重要  252
    7.5 小结  253
    第8章 事务  255
    8.1 事务控制语句  255
    8.2 原子性  257
    8.2.1 语句级原子性  257
    8.2.2 过程级原子性  259
    8.2.3 事务级原子性  262
    8.2.4 DDL与原子性  262
    8.3 持久性  263
    8.3.1 COMMIT的WRITE扩展  263
    8.3.2 非分布式PL/SQL代码块中的COMMIT  264
    8.4 完整性约束和事务  266
    8.4.1 IMMEDIATE约束  266
    8.4.2 DEFERRABLE约束和级联更新  266
    8.5 不好的事务习惯  270
    8.5.1 在循环中提交  270
    8.5.2 使用自动提交  276
    8.6 分布式事务  277
    8.7 自治事务  278
    8.7.1 自治事务如何工作  279
    8.7.2 何时使用自治事务  280
    8.8 小结  283
    第9章 redo与undo  284
    9.1 什么是redo  285
    9.2 什么是undo  286
    9.3 redo和undo如何协作  289
    9.4 提交和回滚处理  293
    9.4.1 COMMIT做什么  293
    9.4.2 ROLLBACK做什么  299
    9.5 分析redo  300
    9.5.1 测量redo  301
    9.5.2 能关掉重做日志的生成吗  302
    9.5.3 为什么我拿不到日志空间  305
    9.5.4 块清除  307
    9.5.5 日志竞争  310
    9.5.6 临时表和redo/undo  312
    9.6 分析undo  317
    9.6.1 什么操作会生成最多和最少的undo  317
    9.6.2 ORA-01555: snapshot too old错误  319
    9.7 小结  328
    第10章 数据库表  329
    10.1 表类型  329
    10.2 术语  331
    10.2.1 段  331
    10.2.2 段空间管理  333
    10.2.3 高水位线  334
    10.2.4 FREELIST  336
    10.2.5 PCTFREE和PCTUSED  339
    10.2.6 LOGGING和NOLOGGING  342
    10.2.7 INITRANS和MAXTRANS  343
    10.3 堆组织表  343
    10.4 索引组织表  346
    10.5 索引聚簇表  359
    10.6 散列聚簇表  366
    10.7 有序散列聚簇表  375
    10.8 嵌套表  377
    10.8.1 嵌套表语法  378
    10.8.2 嵌套表存储  384
    10.8.3 嵌套表小结  387
    10.9 临时表  387
    10.9.1 12c之前的统计信息  391
    10.9.2 12c之后的统计信息  395
    10.9.3 临时表小结  398
    10.10 对象表  399
    10.11 小结  405
    第11章 索引  406
    11.1 Oracle索引概述  406
    11.2 B*Tree索引  408
    11.2.1 索引键压缩  411
    11.2.2 反向键索引  413
    11.2.3 降序索引  418
    11.2.4 什么情况下应该使用B*Tree索引  420
    11.2.5 B*Tree小结  430
    11.3 位图索引  430
    11.3.1 什么情况下应该使用位图索引  431
    11.3.2 位图联结索引  435
    11.3.3 位图索引小结  437
    11.4 基于函数的索引  438
    11.4.1 一个简单的例子  438
    11.4.2 只对部分行建立索引  446
    11.4.3 实现有选择的唯一性  448
    11.4.4 关于ORA-01743的警告  448
    11.4.5 基于函数的索引小结  449
    11.5 应用域索引  450
    11.6 不可见的索引  451
    11.7 同列上的多个索引  452
    11.8 在扩展列上使用索引  453
    11.8.1 使用虚拟列的方法  454
    11.8.2 使用基于函数索引的方法  456
    11.9 关于索引的常见问题和各种传言  457
    11.9.1 视图能使用索引吗  457
    11.9.2 Null和索引能协作吗  457
    11.9.3 外键是否应该加索引  460
    11.9.4 为什么没有使用我的索引  461
    11.9.5 传言:索引中从不重用空间  466
    11.9.6 传言:最有差别的元素应该在最前面  469
    11.10 小结  472
    第12章 数据类型  473
    12.1 Oracle数据类型概述  473
    12.2 字符和二进制串类型  475
    12.2.1 NLS概述  476
    12.2.2 字符串  479
    12.3 二进制串:RAW类型  485
    12.4 扩展的数据类型  487
    12.5 数值类型  489
    12.5.1 NUMBER类型的语法和用法  491
    12.5.2 BINARY_FLOAT/BINARY_DOUBLE类型的语法和用法  494
    12.5.3 非固有数值类型  495
    12.5.4 性能考虑  495
    12.6 LONG类型  497
    12.6.1 LONG 和LONG RAW类型的限制  497
    12.6.2 处理遗留的LONG类型  498
    12.7 DATE、TIMESTAMP和INTERVAL类型  502
    12.7.1 格式  503
    12.7.2 DATE类型  504
    12.7.3 TIMESTAMP类型  509
    12.7.4 INTERVAL类型  515
    12.8 LOB类型  518
    12.8.1 内部LOB  518
    12.8.2 BFILE  531
    12.9 ROWID/UROWID类型  533
    12.10 小结  533
    第13章 分区  535
    13.1 分区概述  535
    13.1.1 提高可用性  536
    13.1.2 减少管理负担  538
    13.1.3 增强语句性能  541
    13.2 表分区机制  543
    13.2.1 区间分区  544
    13.2.2 散列分区  546
    13.2.3 列表分区  550
    13.2.4 间隔分区  552
    13.2.5 引用分区  557
    13.2.6 间隔引用分区  561
    13.2.7 虚拟列分区  563
    13.2.8 组合分区  564
    13.2.9 行移动  566
    13.2.10 表分区机制小结  568
    13.3 索引分区  569
    13.3.1 本地索引与全局索引  570
    13.3.2 本地索引  570
    13.3.3 全局索引  575
    13.4 再论分区和性能  590
    13.5 一些简化维护的特性  595
    13.5.1 多分区管理操作  595
    13.5.2 级联截断  597
    13.5.3 级联交换  599
    13.6 审计和段空间压缩  600
    13.7 小结  601
    第14章 并行执行  603
    14.1 何时使用并行执行  604
    14.2 Oracle Exadata  606
    14.3 并行查询  606
    14.4 并行DML  612
    14.5 并行DDL  615
    14.5.1 并行DDL和使用外部表的数据加载  616
    14.5.2 并行DDL和扩展截断  617
    14.6 过程并行化  625
    14.6.1 并行管道函数  626
    14.6.2 DIY并行化  629
    14.6.3 老式DIY并行化  632
    14.7 小结  635
    第15章 数据加载和卸载  637
    15.1 外部表  637
    15.1.1 建立外部表  638
    15.1.2 处理错误  645
    15.1.3 使用外部表加载不同的文件  648
    15.1.4 多用户问题  649
    15.1.5 预处理  650
    15.1.6 外部表总结  658
    15.2 数据泵卸载  659
    15.3 SQLLDR  660
    15.3.1 用SQLLDR加载数据的常见问题  664
    15.3.2 SQLLDR警告  686
    15.3.3 SQLLDR小结  686
    15.4 平面文件卸载  687
    15.5 小结  694
  • 精彩书评

      “在数据为王的时代,数据库在软件领域受到了前所未有的关注。这本书是Oracle数据库大师的经典之作,对以数据库为核心的软件设计和开发进行了全面深入的解析,经过Oracle中国数据库专家们的专业翻译,相信对广大的开发者将有非常大的帮助。”  ——苏冬林,Oracle公司解决方案中心总经理  “Oracle Database12c是全新的面向云设计的数据库,并针对企业云计算应用做出了多项技术创新,如内存计算、多租户等。Thomas Kyte作为全球著名的Oracle数据库大师,其多本著作让全球Oracle技术爱好者广为受益。朱龙春是国内为数不多的Oracle技术领域的典范。我相信通过老朱和Oracle研发同事的倾心翻译,这本针对12c云架构的经典著作会给国内的广大Oracle技术爱好者带来一份技术盛宴。”  ——李珈,Oracle公司数据库技术部总经理
微信公众号

热门文章

更多