图书介绍
Oracle性能优化求生指南PDF|Epub|txt|kindle电子书版本网盘下载
![Oracle性能优化求生指南](https://www.shukui.net/cover/68/33844237.jpg)
- (澳)Guy Harrison著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115291141
- 出版时间:2012
- 标注页数:555页
- 文件大小:85MB
- 文件页数:577页
- 主题词:关系数据库-数据库管理系统-系统性能-最佳化-指南
PDF下载
下载说明
Oracle性能优化求生指南PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 方法、概念和工具2
第1章Oracle性能调优:一种系统化方法2
1.1 Oracle性能调优简史3
1.2超越表面分析法3
1.3第一阶段:最小化应用负载5
1.4第二阶段:降低争用和瓶颈6
1.5第三阶段:降低物理IO7
1.6第四阶段:优化磁盘IO8
1.7本章小结9
第2章Oracle体系结构与基本概念11
2.1 Oracle API11
2.1.1创建游标13
2.1.2检查缓存的SQL语句13
2.1.3解析SQL语句13
2.1.4关联绑定变量14
2.1.5执行SQL语句15
2.1.6提取记录15
2.1.7使用批量提取15
2.1.8 处理结果集16
2.1.9关闭游标16
2.1.10优化Oracle API调用16
2.2 Oracle查询优化器16
2.2.1基于成本的优化17
2.2.2优化器目标18
2.2.3优化器统计信息18
2.2.4绑定变量窥视与自适应游标共享19
2.2.5提示19
2.2.6存储概要、SQL概要和SQL计划基线19
2.3事务和锁20
2.4 Oracle服务器体系结构20
2.4.1实例与数据库21
2.4.2系统全局区22
2.4.3数据缓存22
2.4.4程序全局区22
2.4.5内存管理23
2.5段与文件23
2.5.1表23
2.5.2索引24
2.5.3块、区间、段以及分区24
2.5.4表空间与数据文件25
2.5.5回滚段25
2.5.6重做日志与归档日志25
2.5.7闪回日志25
2.6 服务器进程26
2.7后台进程26
2.8真正应用集群27
2.9 本章小结28
第3章 实用工具29
3.1生成SQL语句的执行计划29
3.1.1计划表30
3.1.2研究缓存的SQL33
3.1.3 DBMS_XPLAN35
3.1.4解释执行计划39
3.1.5虚拟索引43
3.2跟踪Oracle的执行44
3.2.1从当前会话中调用跟踪44
3.2.2识别跟踪文件45
3.2.3获取跟踪状态45
3.2.4在其他会话中调用跟踪46
3.2.5通过MODULE、ACTION或SERVICE进行跟踪47
3.2.6使用登录触发器来启用跟踪47
3.2.7定位跟踪文件48
3.2.8其他特殊化的跟踪48
3.3使用tkprof格式化跟踪文件49
3.3.1 tkprof的排序选项49
3.3.2其他tkprof选项50
3.3.3合并多个SQL跟踪文件51
3.3.4解释tkprof的输出结果51
3.3.5 tkprof中的执行计划53
3.3.6等待统计信息与tkprof54
3.3.7 tkprof的替代品54
3.4在SQL*PLUS中使用AUTOTRACE55
3.5监控Oracle服务器56
3.5.1 V$表接口56
3.5.2等待接口57
3.5.3时间模型59
3.5.4整合时间模型与等待接口61
3.5.5 Oracle企业管理器62
3.5.6 SPOTLIGHT ON ORACLE63
3.6本章小结64
第二部分 应用和数据库设计66
第4章 数据库逻辑设计和物理设计66
4.1逻辑数据模型66
4.1.1标准化和第三范式66
4.1.2数据类型选择67
4.1.3人造键67
4.1.4数据仓库设计68
4.2逻辑模型到物理模型的映射68
4.2.1将实体或类映射成表69
4.2.2选择表的类型71
4.2.3数据类型和精度71
4.2.4可选的属性和NULL值72
4.2.5列的顺序73
4.2.6探索Oracle对象模型73
4.3反规范化74
4.3.1复制列值以避免表联结74
4.3.2概要表75
4.3.3垂直分区75
4.3.4实施反规范化76
4.4星型模式设计76
4.4.1星型模式基础76
4.4.2雪花模式77
4.4.3维度层次结构79
4.4.4聚集和物化视图80
4.4.5物化视图最佳实践81
4.5物理存储方案82
4.5.1数据段存储手工管理和自动管理82
4.5.2并行插入和空闲块链表82
4.5.3 PCTFREE与PCTUSED83
4.5.4压缩84
4.5.5大数据字段LOB的存储85
4.6分区86
4.6.1分区的类型86
4.6.2组合分区87
4.6.3选择一个分区策略87
4.6.4企业管理器的分区顾问87
4.7本章小结89
第5章 索引与簇91
5.1 Oracle索引与簇机制的概况91
5.2 B*树索引91
5.2.1索引选择性93
5.2.2唯一索引93
5.2.3隐含索引94
5.2.4组合索引94
5.2.5索引跳跃扫描95
5.2.6创建组合索引的指导原则96
5.2.7索引合并96
5.2.8索引中的空值97
5.2.9反转键(Reverse Key)索引97
5.2.10索引压缩98
5.2.11函数索引98
5.2.12外键与锁99
5.2.13索引与分区100
5.3位图索引101
5.3.1位图索引的特性101
5.3.2位图索引的缺陷102
5.3.3位图索引与基数103
5.3.4位图索引合并104
5.3.5位图联结索引104
5.4索引的开销106
5.5索引组织表109
5.5.1配置溢出段111
5.5.2定期重建索引组织表(IOT)114
5.6簇114
5.6.1索引簇114
5.6.2散列簇116
5.7嵌套表121
5.8选择最优的索引策略123
5.9本章小结124
第6章 应用设计与实现125
6.1 SQL语句管理125
6.1.1优化解析125
6.1.2避免执行不必要的SQL语句129
6.2批量接口133
6.2.1实现批量提取133
6.2.2批量插入135
6.3事务设计135
6.3.1隔离级别136
6.3.2事务与锁137
6.3.3 Oracle中的行级锁138
6.3.4应用的锁策略139
6.4使用存储过程来降低网络流量141
6.5本章小结145
第三部分SQL和PL/SQL调优148
第7章 优化器的优化148
7.1 Oracle优化器148
7.1.1什么是成本148
7.1.2优化器目标149
7.1.3选择性和基数149
7.1.4查询转换149
7.1.5成本计算150
7.1.6对象统计信息151
7.1.7直方图152
7.1.8绑定变量窥探154
7.1.9自适应游标共享155
7.1.10数据库参数156
7.1.11系统统计信息159
7.1.12收集统计信息160
7.2使用DBMS_STAT162
7.2.1 DBMS_STATS的储存过程和参数163
7.2.2设置DBMS_STATS的系统默认值165
7.2.3使用METHOD OPT创建直方图165
7.2.4抽样166
7.2.5分区统计信息167
7.2.6扩展的统计信息167
7.2.7锁定统计信息169
7.2.8系统统计信息170
7.2.9导出和导入统计信息170
7.2.10操纵统计信息170
7.3本章小结171
第8章 执行计划管理172
8.1提示172
8.1.1使用提示来改变访问路径174
8.1.2使用提示来改变联结顺序174
8.1.3提示详述中的错误175
8.2存储提纲175
8.2.1创建存储提纲以稳定执行计划176
8.2.2侵入存储提纲177
8.3 SQL调优集179
8.3.1手动创建调优集180
8.3.2在企业管理器中创建调优集181
8.4 SQL概要和SQL调优顾问182
8.4.1使用DBMS_SQLTUNE183
8.4.2索引建议185
8.4.3企业管理器中的SQL优化186
8.4.4使用SQL访问顾问进行交叉SQL调优187
8.5 SQL基线189
8.5.1创建基线189
8.5.2进化基线191
8.5.3自动化和配置基线194
8.5.4固化的基线194
8.5.5在ORACLE企业管理器中管理基线195
8.6本章小结195
第9章 表访问调优197
9.1单值查询197
9.1.1在表和索引扫描间选择198
9.1.2位图索引和单值查询201
9.1.3散列聚簇和单值查询202
9.2避免“意外的”表扫描203
9.2.1不等条件203
9.2.2空值查询205
9.2.3查找非空值207
9.2.4在可为空的列上创建索引207
9.2.5无意中通过使用函数而禁用了索引208
9.2.6函数索引208
9.2.7函数索引和统计209
9.2.8虚拟列211
9.3多列查询212
9.3.1使用组合索引212
9.3.2索引合并213
9.3.3唯一性与覆盖索引213
9.4查找范围214
9.4.1无界范围扫描214
9.4.2有界范围扫描216
9.4.3范围查询217
9.5使用LIKE运算符219
9.6多值单列查找220
9.7优化必要的全表扫描221
9.7.1降低高水位线221
9.7.2优化PCTFREE和PCTUSED222
9.7.3减少记录长度223
9.7.4压缩表223
9.7.5使数据库IO更高效225
9.7.6使用抽样选项225
9.7.7并行查询226
9.7.8快速全索引扫描227
9.7.9分区228
9.8本章小结229
第10章 联结与子查询231
10.1联结类型231
10.2联结方法232
10.2.1嵌套循环联结232
10.2.2排序合并联结233
10.2.3散列联结234
10.3选择正确的联结方法235
10.3.1排序合并/散列与嵌套循环的对比235
10.3.2排序合并和散列联结对比235
10.4优化联结239
10.4.1优化嵌套循环联结239
10.4.2优化排序合并联结与散列联结240
10.5避免联结241
10.5.1反范式化242
10.5.2索引聚簇242
10.5.3物化视图243
10.5.4位图联结索引244
10.6联结顺序244
10.7特殊联结246
10.7.1外联结246
10.7.2星型联结248
10.7.3层级查询252
10.8子查询254
10.8.1简单子查询254
10.8.2关联子查询256
10.8.3反联结子查询257
10.8.4半联结子查询259
10.9本章小结260
第11章 排序、分组与集合操作261
11.1排序操作261
11.1.1最优、一次和多次排序262
11.1.2衡量排序活动263
11.1.3跟踪排序活动264
11.1.4使用索引规避排序265
11.2分组与聚合267
11.2.1聚合操作267
11.2.2最大值和最小值268
11.2.3“前N”查询269
11.2.4计算一张表的记录数271
11.2.5分组操作271
11.2.6 HAvING与WHERE273
11.3集合操作274
11.3.1 uNION与UNION ALL275
11.3.2 INTERSECT275
11.3.3 MINus277
11.3.4集合操作和它们的替代方法278
11.4本章小结279
第12章 使用和调优PL/SQL280
12.1 PL/SQL的性能优势280
12.1.1过程化的方法280
12.1.2减少网络开销280
12.1.3分解并攻克海量的SQL语句281
12.2衡量PL/SQL的性能281
12.2.1衡量PL/SQL的开销281
12.2.2使用DBMS_PROFILER283
12.2.3 11g的分层剖析器284
12.3数据访问优化287
12.3.1数组处理和BULK COLLECT287
12.3.2对INSERT语句进行数组处理289
12.3.3绑定变量和动态SQL290
12.4 PL/SQL代码优化292
12.4.1首先调优SQL292
12.4.2 PLSQL_OPTIMIZE_LEVEL292
12.4.3循环优化293
12.4.4 “短路”表达式295
12.4.5在IF和CASE语句中表达式的顺序297
12.4.6递归298
12.4.7 NOCOPY子句299
12.4.8关联数组301
12.5其他优化302
12.5.1本地编译302
12.5.2内联PL/SQL304
12.5.3数据类型306
12.5.4使用JAVA计算307
12.5.5函数缓存308
12.6 DML触发器的性能309
12.6.1 UPDATE OF和WHEN子句309
12.6.2 BEFORE和AFTER ROW触发器310
12.7本章小结311
第13章 并行SQL312
13.1理解并行SQL312
13.1.1并行进程和并行度314
13.1.2并行子进程池315
13.1.3并行查询IO316
13.1.4并行性能收益316
13.2决定何时使用并行处理317
13.2.1服务器计算机有多个CPU318
13.2.2被访问的数据放置在多个磁盘驱动器上318
13.2.3使用并行的SQL是长时间运行的或者资源敏感的318
13.2.4 SQL执行最少一次全表、索引或分区扫描319
13.2.5主机有空闲的能力319
13.2.6 SQL是调优过的319
13.3配置并行处理319
13.3.1确定并行度319
13.3.2并行提示321
13.3.3并行配置的参数321
13.4监控并行SQL323
13.4.1并行语句的执行计划323
13.4.2跟踪并行执行325
13.4.3 V?PQ_TQSTAT视图326
13.4.4其他的统计数据327
13.5优化并行的性能328
13.5.1从一个优化过的串行执行的SQL开始328
13.5.2确保这个SQL适合并行执行329
13.5.3确保系统适合配置支持并行执行329
13.5.4确保执行计划的所有部分都做了并行化329
13.5.5确保请求的并行度是可实现的331
13.5.6监控实际的并行度331
13.5.7检查进程间数据和负载的偏差332
13.6其他的并行主题333
13.6.1 RAC的并行执行333
13.6.2并行的索引查找334
13.6.3并行DML335
13.6.4并行DDL339
13.7本章小结340
第14章DML调优342
14.1 DML性能基础342
14.1.1 Where子句优化342
14.1.2索引开销343
14.1.3触发器开销344
14.1.4参照完整性345
14.2INSERT操作的特定优化346
14.2.1批量处理346
14.2.2直接路径插入347
14.2.3多表插入349
14.2.4手动段存储管理(MSSM)和空闲列表351
14.2.5并行DML351
14.3删除操作351
14.3.1 TRUNCATE351
14.3.2分区352
14.3.3 CREATE TABLE AS SELECT352
14.4更新和合并操作353
14.4.1关联更新353
14.4.2优化MERGE操作355
14.5 COMMIT优化357
14.5.1 CoMMIT频率358
14.5.2批量和NOWAIT提交358
14.5.3 NOLOGGING360
14.6本章小结361
第四部分 最小化争用364
第15章 锁争用364
15.1锁的类型和模式364
15.2等待锁367
15.3监控和分析锁368
15.3.1锁等待的统计数据368
15.3.2发现导致锁争用的SQL371
15.3.3度量指定事务的锁争用373
15.3.4跟踪锁行为375
15.3.5阻塞者和等待者376
15.4应用程序的锁策略379
15.5行级锁什么时候会失败380
15.5.1没有索引的外键380
15.5.2事务表等待381
15.5.3位图索引382
15.5.4直接路径插入383
15.6系统锁383
15.6.1高水位标记enqueue384
15.6.2空间事务enqueue384
15.6.3序列缓存enqueue384
15.6.4用户锁enqueue385
15.6.5其他的系统锁385
15.7本章小结386
第16章 闩锁和互斥争用387
16.1闩锁和互斥架构的简介387
16.1.1 GETS、SPINS和SLEEPS388
16.1.2互斥388
16.2度量和诊断闩锁/互斥争用389
16.2.1识别单个的闩锁390
16.2.2发现与闩锁等待相关的SQL和段391
16.3特定的闩锁和互斥场景392
16.3.1 Library Cache Mutex等待393
16.3.2 Library Cache Pin394
16.3.3 Shared Pool Latch395
16.3.4 Cache Buffers Chains Latch395
16.3.5 Row Cache Object 闩锁397
16.3.6其他的闩锁场景398
16.4闩锁争用是不可避免的吗399
16.4.1改变_SPIN_COUNT怎么样399
16.4.2自旋计数、闩锁争用和吞吐量400
16.4.3设置单个闩锁的自旋计数402
16.5本章小结402
第17章 共享内存争用404
17.1缓冲区高速缓存架构404
17.2空闲缓冲块等待406
17.2.1 DBWR直接和异步IO407
17.2.2空闲缓冲块等待的其他补救措施409
17.3恢复写进程等待410
17.3.1提高闪回日志IO411
17.3.2增加闪回日志缓冲的大小412
17.4缓冲忙等待414
17.4.1度量缓冲忙414
17.4.2缓冲忙等待的传统原因414
17.4.3缓冲忙和热块415
17.5重做日志缓冲等待417
17.6本章小结419
第五部分 优化内存422
第18章 缓冲区高速缓存调优422
18.1缓冲区高速缓存的原理422
18.1.1最近最少使用列表423
18.1.2表扫描处理423
18.1.3 CACHE属性424
18.1.4直接路径IO424
18.2缓冲区高速缓存配置和调优425
18.2.1监控缓冲区高速缓存425
18.2.2缓冲区高速缓存命中率426
18.2.3多个缓冲区高速缓存428
18.2.4设置缓冲区高速缓存的大小430
18.3自动共享内存管理433
18.3.1实现ASMM433
18.3.2监控重设大小操作434
18.3.3调优ASMM435
18.3.4非默认池436
18.3.5内存抖动437
18.4本章小结439
第19章 优化PGA内存440
19.1 IO和PGA内存440
19.2 PGA内存管理441
19.2.1 PGA AGGREGATE TARGET441
19.2.2会话的PGA限制442
19.3测量PGA的使用和效率443
19.3.1会话的PGA利用率445
19.3.2测量临时IO等待时间446
19.3.3测量工作区活动448
19.4用V?PGA_TARGET_ADVICE来设置PGA的大小449
19.5覆写PGA总量目标452
19.6本章小结454
第20章 其他的内存管理主题455
20.1优化整体的Oracle内存455
20.1.1 IO等待时间和内存优化455
20.1.2使用顾问来分配PGA和缓冲区高速缓存的内存458
20.1.3 Oracle 11g的自动化内存管理464
20.2结果集缓存470
20.2.1启用和配置结果集缓存471
20.2.2结果集缓存的统计数据471
20.2.3结果集缓存的依赖474
20.2.4结果集缓存闩锁474
20.3其他的内存优化476
20.3.1设置共享池的大小476
20.3.2设置大池的大小478
20.3.3重做日志缓存478
20.3.4锁定SGA478
20.4本章小结479
第六部分IO调优和集群482
第21章 磁盘IO调优基础482
21.1磁盘IO的概念482
21.1.1服务时间和吞吐量482
21.1.2排队483
21.1.3磁盘驱动器:慢和正在变得更慢483
21.1.4磁盘容量和数据分布484
21.2 Oracle IO架构484
21.2.1数据文件单块读485
21.2.2多块读485
21.2.3直接路径读486
21.2.4临时直接路径IO486
21.2.5数据文件写IO486
21.2.6直接路径写487
21.2.7重做日志IO487
21.2.8归档日志IO487
21.2.9闪回IO488
21.2.10控制文件IO488
21.3度量和监控Oracle IO488
21.3.1 IO等待次数488
21.3.2监控数据文件IO492
21.3.3 IO基准测试494
21.4优化数据文件IO495
21.4.1最小化IO延时495
21.4.2最大化IO吞吐量496
21.4.3条带化策略497
21.4.4 RAID阵列497
21.4.5隔离数据文件IO500
21.5重做和归档优化500
21.5.1交替和分发日志501
21.5.2重做和归档设备的细粒度条带化501
21.5.3对重做日志使用RAID5大声说不502
21.5.4重做日志大小503
21.6闪回日志506
21.7本章小结507
第22章 高级IO技术508
22.1自动存储管理508
22.1.1 ASM架构509
22.1.2 ASM监控510
22.1.3 ASM调优515
22.2固态磁盘(SSD)520
22.2.1基于闪存的SSD520
22.2.2基于随机存储器的DDRSSD520
22.2.3 混合的SSD521
22.2.4为Oracle数据库使用SSD521
22.3 EXADATA存储服务器522
22.4数据库块大小522
22.5本章小结524
第23章 优化RAC525
23.1 RAC概览525
23.1.1全局缓存请求526
23.1.2 RAC调优原则528
23.1.3单实例调优和RAC528
23.2度量集群开销529
23.3减少全局缓存延时532
23.3.1度量全局缓存延时532
23.3.2检查内部互连534
23.3.3内部互连问题的信号536
23.4优化内部互连537
23.4.1网络硬件和协议537
23.4.2以太网特大帧537
23.4.3 UDP缓冲大小538
23.4.4 LMS等待539
23.5集群负载均衡541
23.5.1评估集群负载均衡541
23.5.2集群负载均衡和服务544
23.5.3 RAC负载均衡服务547
23.6最小化全局缓存请求548
23.6.1高的全局缓存请求比例的原因548
23.6.2度量全局缓存请求比例549
23.6.3减少全局缓存请求的技巧550
23.7本章小结551
参考书目552