Oracle性能优化求生指南PDF电子书下载
- 电子书积分:17 积分如何计算积分?
- 作 者:(澳)Guy Harrison著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2012
- ISBN:9787115291141
- 页数:555 页
第一部分 方法、概念和工具 2
第1章Oracle性能调优:一种系统化方法 2
1.1 Oracle性能调优简史 3
1.2超越表面分析法 3
1.3第一阶段:最小化应用负载 5
1.4第二阶段:降低争用和瓶颈 6
1.5第三阶段:降低物理IO 7
1.6第四阶段:优化磁盘IO 8
1.7本章小结 9
第2章Oracle体系结构与基本概念 11
2.1 Oracle API 11
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研究缓存的SQL 33
3.1.3 DBMS_XPLAN 35
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等待统计信息与tkprof 54
3.3.7 tkprof的替代品 54
3.4在SQL*PLUS中使用AUTOTRACE 55
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 ORACLE 63
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与PCTUSED 83
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_STAT 162
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_SQLTUNE 183
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和PCTUSED 222
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与WHERE 273
11.3集合操作 274
11.3.1 uNION与UNION ALL 275
11.3.2 INTERSECT 275
11.3.3 MINus 277
11.3.4集合操作和它们的替代方法 278
11.4本章小结 279
第12章 使用和调优PL/SQL 280
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_PROFILER 283
12.2.3 11g的分层剖析器 284
12.3数据访问优化 287
12.3.1数组处理和BULK COLLECT 287
12.3.2对INSERT语句进行数组处理 289
12.3.3绑定变量和动态SQL 290
12.4 PL/SQL代码优化 292
12.4.1首先调优SQL 292
12.4.2 PLSQL_OPTIMIZE_LEVEL 292
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/SQL 304
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章 并行SQL 312
13.1理解并行SQL 312
13.1.1并行进程和并行度 314
13.1.2并行子进程池 315
13.1.3并行查询IO 316
13.1.4并行性能收益 316
13.2决定何时使用并行处理 317
13.2.1服务器计算机有多个CPU 318
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监控并行SQL 323
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并行DML 335
13.6.4并行DDL 339
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并行DML 351
14.3删除操作 351
14.3.1 TRUNCATE 351
14.3.2分区 352
14.3.3 CREATE TABLE AS SELECT 352
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 NOLOGGING 360
14.6本章小结 361
第四部分 最小化争用 364
第15章 锁争用 364
15.1锁的类型和模式 364
15.2等待锁 367
15.3监控和分析锁 368
15.3.1锁等待的统计数据 368
15.3.2发现导致锁争用的SQL 371
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高水位标记enqueue 384
15.6.2空间事务enqueue 384
15.6.3序列缓存enqueue 384
15.6.4用户锁enqueue 385
15.6.5其他的系统锁 385
15.7本章小结 386
第16章 闩锁和互斥争用 387
16.1闩锁和互斥架构的简介 387
16.1.1 GETS、SPINS和SLEEPS 388
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 Pin 394
16.3.3 Shared Pool Latch 395
16.3.4 Cache Buffers Chains Latch 395
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直接和异步IO 407
17.2.2空闲缓冲块等待的其他补救措施 409
17.3恢复写进程等待 410
17.3.1提高闪回日志IO 411
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直接路径IO 424
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实现ASMM 433
18.3.2监控重设大小操作 434
18.3.3调优ASMM 435
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 TARGET 441
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锁定SGA 478
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临时直接路径IO 486
21.2.5数据文件写IO 486
21.2.6直接路径写 487
21.2.7重做日志IO 487
21.2.8归档日志IO 487
21.2.9闪回IO 488
21.2.10控制文件IO 488
21.3度量和监控Oracle IO 488
21.3.1 IO等待次数 488
21.3.2监控数据文件IO 492
21.3.3 IO基准测试 494
21.4优化数据文件IO 495
21.4.1最小化IO延时 495
21.4.2最大化IO吞吐量 496
21.4.3条带化策略 497
21.4.4 RAID阵列 497
21.4.5隔离数据文件IO 500
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基于闪存的SSD 520
22.2.2基于随机存储器的DDRSSD 520
22.2.3 混合的SSD 521
22.2.4为Oracle数据库使用SSD 521
22.3 EXADATA存储服务器 522
22.4数据库块大小 522
22.5本章小结 524
第23章 优化RAC 525
23.1 RAC概览 525
23.1.1全局缓存请求 526
23.1.2 RAC调优原则 528
23.1.3单实例调优和RAC 528
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
- 《近代旅游指南汇刊二编 16》王强主编 2017
- 《联吡啶基钌光敏染料的结构与性能的理论研究》李明霞 2019
- 《甘肃省档案馆指南》甘肃省档案馆编 2018
- 《近代旅游指南汇刊 31》王强主编 2014
- 《近代旅游指南汇刊二编 10》王强主编 2017
- 《手工咖啡 咖啡爱好者的完美冲煮指南》(美国)杰茜卡·伊斯托,安德烈亚斯·威尔霍夫 2019
- 《近代旅游指南汇刊 13》王强主编 2014
- 《近代旅游指南汇刊 28》王强主编 2014
- 《近代旅游指南汇刊 23》王强主编 2014
- 《重庆市绿色建筑评价技术指南》重庆大学,重庆市建筑节能协会绿色建筑专业委员会主编 2018
- 《中风偏瘫 脑萎缩 痴呆 最新治疗原则与方法》孙作东著 2004
- 《水面舰艇编队作战运筹分析》谭安胜著 2009
- 《王蒙文集 新版 35 评点《红楼梦》 上》王蒙著 2020
- 《TED说话的力量 世界优秀演讲者的口才秘诀》(坦桑)阿卡什·P.卡里亚著 2019
- 《燕堂夜话》蒋忠和著 2019
- 《经久》静水边著 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《微表情密码》(波)卡西亚·韦佐夫斯基,(波)帕特里克·韦佐夫斯基著 2019
- 《看书琐记与作文秘诀》鲁迅著 2019
- 《酒国》莫言著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019