新書推薦:
《
量子网络的构建与应用
》
售價:NT$
500.0
《
拍电影的热知识:126部影片里的创作技巧(全彩插图版)
》
售價:NT$
500.0
《
大唐名城:长安风华冠天下
》
售價:NT$
398.0
《
情绪传染(当代西方社会心理学名著译丛)
》
售價:NT$
403.0
《
中国年画 1950-1990 THE NEW CHINA: NEW YEAR PICTURE 英文版
》
售價:NT$
1100.0
《
革命与反革命:社会文化视野下的民国政治(近世中国丛书)
》
售價:NT$
435.0
《
画楼:《北洋画报》忆旧(年轮丛书)
》
售價:NT$
1573.0
《
大国脊梁:漫画版
》
售價:NT$
374.0
編輯推薦:
Oracle资深专家Johnathan Lewis最新力作
DBA和开发者必须了解的Oracle核心机制
一本令人震撼、让你大开眼界的必读经典
浓缩了Oracle的核心技术和精华,系统地介绍了数据库性能问题出现的原因以及背后的核心原理,以深入浅出的方式清晰地阐释了如何识别造成瓶颈的原因、如何优化数据库系统、为什么并发会严重降低性能等,是你解决数据库性能问题的必备工具。
內容簡介:
《Oracle核心技术》揭示了Oracle数据库内部的核心信息,这些信息恰好是每个DBA排除故障所必需的,不多不少。内容涉及Oracle核心架构基础:多少开销是合理的?如何认识到你做得太多?如何预见故障?为什么发生这些故障?等等。《Oracle核心技术》适合DBA、QA、架构师、开发人员等人群阅读。
關於作者:
Jonathan
Lewis有超过20年使用Oracle关系数据库管理系统的经验。他从事自由咨询顾问工作,向客户阐述关键性能问题。还指导在一个特定的项目中如何利用最合适的Oracle功能。他因关于Oracle数据库引擎的培训课程和研讨会而闻名世界。Jonathan还有两本很畅销的Oracle方面的书。他还定期给UKOUG杂志供稿,并维护自己的针对Oracle的博客。
目錄 :
第1章 准备开始
1.1 Oracle的流程
1.2 Oracle实战
1.3 小结
第2章 redo和undo
2.1 基本数据改变
2.1.1 数据改变的方法
2.1.2 示例
2.1.3 任务报告
2.1.4 观察总结
2.2 ACID
2.3 redo复杂度
2.4 undo复杂度
2.4.1 读一致性
2.4.2 回滚
2.5 小结
第3章 事务与一致性
3.1 冲突解决
3.2 事务与undo
3.2.1 事务的开始与结束
3.2.2 事务表
3.2.3 undo块回顾
3.3 数据块访问与undo
3.3.1 设置场景
3.3.2 事务列表
3.3.3 并发动作
3.4 提交SCN
3.4.1 提交清除
3.4.2 延迟块清除
3.4.3 事务表回滚
3.5 大对象
3.6 小结
第4章 锁与闩锁
4.1 事情有先有后
4.1.1 数组
4.1.2 指针
4.1.3 链表
4.1.4 散列表
4.2 闩锁
4.2.1 闩锁背后的逻辑
4.2.2 闩锁活动统计
4.2.3 闩锁可扩展性
4.3 锁
4.3.1 基础结构
4.3.2 V$lock的图形展示
4.3.3 死锁
4.3.4 锁模式
4.3.5 保护锁的闩锁
4.3.6 KGL锁和pin
4.3.7 锁和pin
4.4 小结
第5章 缓存和复制
5.1 内存管理
5.1.1 granule
5.1.2 granule和缓冲区
5.2 多个数据块缓存
5.2.1 granule和缓冲池
5.2.2 缓冲池
5.3 工作集
5.4 LRUTCH算法
5.4.1 LRUTCH实战
5.4.2 重新链接缓冲区
5.5 REPL_AUX
5.6 查找数据
5.6.1 pin住缓冲区
5.6.2 逻辑IO
5.6.3 更新update
5.6.4 载入散列链
5.6.5 读一致性拷贝
5.6.6 物理IO
5.6.7 表扫描
5.7 小结
第6章 写入和恢复
6.1 目标
6.2 日志写进程
6.2.1 日志写进程写入
6.2.2 PLSQL优化
6.2.3 ACID异常
6.2.4 提交改进
6.2.5 过程
6.2.6 重做日志浪费
6.2.7 私有重做
6.3 数据库写进程
6.3.1 缓冲区头部
6.3.2 检查点队列
6.3.3 增量检查点
6.4 数据库写进程的交互
6.4.1 数据库写进程与日志写进程
6.4.2 数据库写进程和LRU
6.4.3 检查点和队列
6.4.4 缓冲区头部队列
6.4.5 检查点和日志文件
6.5 恢复
6.5.1 介质恢复
6.5.2 备用数据库
6.5.3 闪回数据库
6.5.4 副作用
6.6 小结
第7章 解析与优化
7.1 理解SQL代码
7.1.1 解析
7.1.2 优化
7.1.3 解释tkprof Summaries
7.2 数据字典缓存
7.2.1 结构
7.2.2 数据字典缓存活动
7.3 什么是解析调用
7.3.1 Cursor Caching
7.3.2 持有游标
7.4 库缓存
7.4.1 共享池结构
7.4.2 精妙的共享池结构
7.4.3 那么,行动吧!
7.5 解析和优化
7.5.1 executing、locking和pinning
7.5.2 互斥锁
7.6 小结
第8章 RAC及“缺陷”
8.1 RAC示意图
8.2 重点是什么
8.2.1 高可用性
8.2.2 可扩展性
8.2.3 网格
8.3 它如何工作
8.3.1 全局资源目录
8.3.2 Master和Shadow
8.3.3 GCS和GES
8.3.4 缓存融合
8.3.5 后果
8.4 恢复
8.5 序列
8.5.1 缓存序列
8.5.2 深入解析序列
8.5.3 有序的序列
8.5.4 序列和索引
8.6 小结
附录A 转储与调试
词汇表
索引
內容試閱 :
在Practical Oracle 8i出版后的第三周,我就收到了询问什么时候出版该书9i版本的邮件——Larry
Ellison刚好在这个时候发布了9i版本。过去的12年里,不停有人问我相同的问题,不同的只是版本号。本书基本相当于该书的第二版,仅仅涵盖了第一版的第1章,以及第2章和第3章的少量内容。
有两件事促使我再次提笔写这样一本书。首先,我无数次被问到:Oracle如何用来做某某事?其次,我发现对于这样的问题,很难找到既充分又明确的答案。通常,你只要遍阅Oracle文档,就会找到许多常见问题的答案;只要在网上一搜,就会找到许多介绍Oracle工作原理的文章,却找不到一个全面系统的文档,按正确的顺序进述Oracle的方方面面,让你大体了解Oracle的工作原理以及它为什么只能这样工作。本书要做的就是这件事,即完整讲述Oracle的工作原理。我会系统地讲述,而不是东拼西凑一些细枝末节。
本书目标
本书只有区区两三百页,而11g文档有上万页,所以我似乎不太可能把“整件事”讲清楚,那就事先声明一下。本书讲的是中央数据库引擎的核心机制,这些内容会联动Oracle所有其他内容,主要包括undo、redo、高速缓冲区缓存及共享SQL。即使这样,我仍然不得不舍弃一些细节和有趣的特殊案例,免得本书冗长、臃肿不易阅读。随便举个例子,考虑一个简单的问题:Oracle如何处理一次逻辑IO?先看看x$kcbsw结构,它包含了Oracle访问一个块可能调用的所有函数。你会发现,对于11.2.0.2版本,做一次逻辑IO可以调用的函数有1164个之多。你真的希望详细了解这些函数吗?还是说只要大致了解一下一般要求就足够了?
细节问题在不同的层面重复——关于复杂的问题你想了解多少?假如我真的花时间写了些异常复杂的细节,读者会受益多少呢?另外,本书在完整性、精确性和基本的可读性之间做了必要的折中。我认为,我遵循的是Oracle
RWP部门的Andrew
Holdsworth在2006年OOW大会上所传达的理念。在关于优化器及怎样搜集统计信息的演讲中,他谈到了9091法则,具体说明如下:
90%的情况下,默认样本就行了;
9%的情况下,需要扩大样本采集范围;
剩下1%的情况跟样本大小无关。
这是著名的8020帕累托法则的增强版,我认为它非常适用于描述理解Oracle核心机制的需求。为便于解释本书,我将该法则重新调整为:90%的情况下你只需了解Oracle如何保持系统运行,1%的情况下你需要搞清楚哪里出了问题,而本书关注的是剩余9%的情况——如果你对Oracle幕后工作有更多的了解,就会更加了解Oracle数据库,会少浪费些宝贵时间。
接下来呢
前段时间,有人问Tanel P?der(我的技术审阅人)什么时候写一本Oracle核心内幕的书,他这样回答:
“如果要写一本常规的老式纸质书,那么答案是永远都不会写,因为这个领域变化太快了,而且写好这样一本书至少要花一整年的工夫,等到书出版时许多细节必然早已过时。”
这个回答很好。这也再次证明了我的观点,即要避免在那1%上浪费时间,而要坚持关注那些普遍的需求及类似的东西。Tanel没有写纸质书,而是在写了一本实时更新的电子书。
但是,纸质书很棒(就算它做成了电子版本),而且我认为,书籍的排版格式会使其内容不同于若干篇互联网文章(就算写得非常好)。纸质书读起来能给人以内容连贯的感觉,整合的文章却不能。在我写这篇引言的时候,我的博客上已经有650篇文章了,文字量比本书要大得多。我可以从中摘录一些放到一起做一个迷你系列专题,而且即使将它们汇编起来,也不会是一本很差的书(哪怕需要我再花些时间写点内容将文章前后贯穿起来)。但是,即使是技术书籍,也需要给读者带来叙述连贯的感觉。
为了解决纸质“非实时”的问题,我在我的博客上写了许多篇博文。其中每篇对应本书的一章。上面还会给出本书纸质版的勘误或简短的补充。因为是博客的形式,所以读者可以在后面提问或评论。当读者询问我的其他书什么时候再版时,我的回答都是不会再版。但是,根据读者的反馈,我也许会发现书中的一些话题需要进一步解释,我漏掉了一些流行的话题,甚至有些全新的话题需要用一整章或是附录来谈论。
我的开场白说完了。现在轮到你,我的读者,来发表建议了。