新書推薦:
《
我的心理医生是只猫
》
售價:HK$
49.5
《
股权控制战略:如何实现公司控制和有效激励(第2版)
》
售價:HK$
98.8
《
成吉思汗传:看历代帝王将相谋略 修炼安身成事之根本
》
售價:HK$
61.6
《
爱丁堡古罗马史-罗马城的起源和共和国的崛起
》
售價:HK$
76.8
《
人生解忧:佛学入门四十讲
》
售價:HK$
107.8
《
在虚无时代:与马克斯·韦伯共同思考
》
售價:HK$
57.2
《
自然信息图:一目了然的万物奇观
》
售價:HK$
140.8
《
女性史:古代卷(真正意义上的女性大历史)
》
售價:HK$
123.2
|
內容簡介: |
本书内容为FlowofWorkUnitTimeBasedAnalysis性能优化方法论的**部分,主要介绍基于流程响应和流程分解的响应时间分析方法论。基本按照以下方式来展开论述:**部分:从性能优化常见的困惑和场景出发引出一些性能优化的基本概念,并重点阐述了Oracle数据库性能优化的方法论发展。第二部分:重点阐述FlowofWorkUnitTimeBasedAnalysis优化方法论,阐述流程、资源和组件之间的相互作用,构建了流程响应的输入输出的性能优化指标体系。第三部分:资源供给,重点阐述流程、资源和组件中的资源部分,全面分析了CPU、Memory、IOSubsystem,NetworkSubSystem、Lock,BufferLock、Latch、Mutex等主要的Oracle数据库资源,并针对每种资源建立了独立的衡量评价体系。
|
目錄:
|
目录?Contents
前 言
第1章 Oracle性能优化漫谈 1
1.1从生活场景漫谈性能优化 1
1.1.1从一个真实病例说起 1
1.1.2如何改善宝马汽车的运行速度 2
1.2性能优化目标的确定和衡量 3
1.2.1性能优化的范畴或优化对象确定 4
1.2.2性能优化目标的用户期望管理 4
1.2.3性能优化的目标衡量 5
1.3吞吐量和响应时间 6
1.3.1吞吐量 6
1.3.2响应时间 7
1.3.3吞吐量和响应时间关系曲线 8
1.3.4医院挂号窗口的吞吐量和响应时间曲线 8
1.3.5tpcc测试的吞吐量和响应时间曲线 10
1.3.6磁盘IO系统吞吐量和响应时间曲线 10
1.4Oracle性能优化工作的分类 12
1.4.1上线优化或从未达到过性能期望的系统优化 12
1.4.2响应速度逐步变慢的系统优化 13
1.4.3运行过程中突然变慢的系统优化 13
1.4.4突然变慢,持续一段时间后又恢复正常的业务系统优化 14
1.4.5基于降低资源消耗的系统优化 14
1.4.6预防性日常性能优化 14
1.5测量和变化 15
1.5.1测量和性能 15
1.5.2变化检测和性能优化 17
1.5.3量变和质变 18
1.6基线管理 19
1.6.1基准点和基线 19
1.6.2沟通基线 19
1.6.3基线管理和动态基线 20
1.7Oracle性能优化的神话和误区 23
1.7.1艺术和科学 23
1.7.2Oracle业务系统性能优化是高手的专利 23
1.7.3测试系统性能很好,生产系统为什么不行 24
1.7.4针对特定性能问题的标准解决方案 24
1.7.5只要资源充足,数据库性能就不会差 24
1.7.6只要数据库性能好,业务系统性能必然良好 25
1.7.7降低等待时间就可以提高业务系统性能 25
第2章Oracle性能优化方法论的发展 27
2.1基于局部命中率分析的优化方法论 28
2.2基于OWI的优化方法论 29
2.2.1OWI优化方法论简述 29
2.2.2OWI方法论的可检测体系 30
2.2.3OWI方法中wait event的发展 31
2.3响应时间分析优化方法论 32
2.3.1RTA方法论简述 32
2.3.2RTA方法论的不足和改善 35
2.4基于工作单元的响应时间分析优化方法论 35
2.4.1UOWTBA优化方法论的导入 35
2.4.2输入吞吐量指标的选择 36
2.4.3采用UOWTBA优化方法工作 38
2.5基于资源瓶颈分析的优化方法论 38
2.5.1基于资源瓶颈分析优化方法论简述 38
2.5.2主要的数据库服务资源供给 39
2.5.3有效运行资源瓶颈分析优化方法 40
2.6流程、资源和组件优化方法论 41
2.6.1吞吐量和响应时间关系曲线 41
2.6.2流程和流程响应分析 41
2.6.3资源分析 43
2.6.4组件 45
第3章流程分析之数据库登录流程 46
3.1数据库登录导致业务系统性能恶化案例分享 46
3.2数据库登录流程的相关指标与优化 47
3.2.1数据库登录流程的输入吞吐量和输出响应指标 47
3.2.2输入压力与输出响应之间的关系 58
3.2.3数据库登录流程响应问题的优化案例 64
第4章流程分析之数据访问处理流程 67
4.1数据访问处理流程优化案例分享 68
4.2数据访问处理流程的分解 68
4.3数据访问处理流程的输入和输出 69
4.3.1输入单元和输出单元的确定 69
4.3.2输入和输出指标的测量 74
4.3.3输入和输出指标的关系曲线 79
4.4数据访问流程优化步骤 80
4.5客户端运行和响应阶段 80
4.5.1子流程过程性分解 80
4.5.2子流程的输入和输出指标 81
4.5.3相关资源和组件 84
4.5.4业务请求和响应阶段优化案例 84
4.6SQL语句分析阶段(parse阶段) 85
4.6.1parse阶段子流程分解 85
4.6.2hard parsesoft parsesoft soft parseno parse的区别 87
4.6.3SQL语句parse的高版本 93
4.6.4复杂语句和简单语句的parse差异 96
4.6.5parse阶段的输入输出指标 99
4.6.6parse阶段的优化道路 113
4.6.7相关资源和组件 121
4.6.8parse阶段优化案例分析 122
4.7SQL语句执行阶段(execute阶段) 123
4.7.1SQL执行阶段子流程分解 123
4.7.2SQL执行子流程输入输出指标 144
4.7.3SQL执行子流程的输入输出指标衡量 147
4.7.4SQL执行阶段输入输出关系图 155
4.7.5SQL执行阶段的优化道路 158
4.7.6SQL执行阶段相关资源和组件 162
4.7.7SQL执行阶段优化案例 164
4.8fetch次数对逻辑读的影响 165
4.9提交(Commit)阶段的流程分解和分析 167
4.9.1提交阶段的主要执行过程 167
4.9.2高并发性提交的响应问题 169
4.9.3提交阶段的优化道路 174
第5章资源 175
5.1简单的资源供给类 176
5.1.1资源使用的突变曲线 176
5.1.2资源的使用率和队列长度 176
5.1.3导致资源供给性能问题的主要场景 177
5.2并发性资源 178
5.2.1并发性资源效率的衡量 178
5.2.2主要的并发性资源和响应突变曲线 178
第6章资源供给:CPU 179
6.1简单案例分享 179
6.2CPU的特殊性 179
6.3CPU的工作和运行性能的衡量 180
6.3.1CPU的主要工作 180
6.3.2CPU运行性能的衡量:利用率和运行队列长度 180
6.3.3CPU的运行性能曲线 180
6.4CPU资源的主要衡量指标 186
6.4.1CPU的主要性能衡量指标 186
6.4.2CPU的主要性能衡量指标的测量 187
6.4.3CPU相关的主要Oracle指标 189
6.5几个CPU资源常见问题的讨论 191
6.5.1CPU资源的100%利用率 191
6.5.2CPU运行队列的长度标准 191
6.5.3CPU sys部分的资源消耗问题 192
6.6CPU资源优化的目标和道路 193
6.6.1CPU资源问题的场景和优化道路 193
6.6.2降低CPU的输入压力 195
6.6.3分布局部的CPU输入压力 204
6.6.4提高CPU处理效率 204
6.6.5合理调度平缓化CPU使用 206
6.7CPU资源优化案例 206
第7章资源供给:内存和虚拟内存 208
7.1简单案例分享 208
7.2物理内存和虚拟内存 208
7.3简单的虚拟内存管理 209
7.3.1工作存储分页和永久存储分页 209
7.3.2计算分页和非计算分页 210
7.3.3页面大小和大页管理 215
7.3.4进程内存管理 218
7.4虚拟内存运行性能的衡量 221
7.4.1虚拟内存运行性能 221
7.4.2虚拟内存的运行性能曲线 222
7.5虚拟内存资源的主要衡量指标 225
7.5.1虚拟内存的主要性能衡量指标 225
7.5.2虚拟内存主要性能衡量指标的测量 226
7.5.3虚拟内存相关的主要Oracle指标 229
7.6几个虚拟内存资源常见问题的讨论 231
7.6.1有128GB的内存,为什么自由空间还是很少 231
7.6.2Oracle业务系统环境下的文件系统缓冲 231
7.6.3如何从AWR报告中发现可能存在的虚拟问题 232
7.6.4如何检测和发现内存泄漏 233
7.7虚拟内存资源优化的目标和道路 234
7.7.1虚拟内存资源问题的场景和优化道路 234
7.7.2合理配置内存分配参数,避免发生swapin和swapout 234
7.7.3合理分配内存,让内存的使用处于安全可控的范围 236
7.7.4充分利用内存,提高业务处理程序运行效率 237
7.7.5合理调度业务程序,使内存使用平缓化 238
7.8虚拟内存资源优化案例 239
第8章资源供给:IO子系统 243
8.1简单案例分享 243
8.2IO子系统和构成 243
8.3卷管理器和文件系统 245
8.3.1卷管理器 245
8.3.2文件系统和逻辑卷 246
8.4HBA、SAN交换机及其他存储系统链路通道 249
8.4.1HBA和SAN 249
8.4.2NIC和网络交换机 250
8.4.3IB和IB交换机 250
8.5磁盘和磁盘阵列 251
8.5.1磁盘 251
8.5.2磁盘的硬件基础性能衡量 252
8.5.3磁盘的iops和数据传输率 253
8.5.4磁盘平均队列长度 254
8.5.5磁盘阵列 254
8.6Raid和LUN 255
8.7磁盘多路径访问和基于存储的容灾复制影响 258
8.7.1磁盘多路径访问 258
8.7.2基于存储(卷)的容灾复制系统的影响 259
8.8固态硬盘和PCIe 260
8.8.1固态硬盘和传统机械硬盘 260
8.8.2SSD的简单结构 261
8.8.3固态硬盘不是机械设备 261
8.8.4固态硬盘不支持原址更新 263
8.8.5Oracle和固态硬盘 263
8.9随机访问和顺序访问 266
8.10基于Oracle数据库的存储系统设计 269
8.10.1Oracle online redo logf?ile和磁盘阵列 269
8.10.2临时表空间的存储设计 269
8.10.3OLTP业务系统或混合型业务系统 269
8.10.4数据仓库或DSS决策系统 270
8.11IO子系统的运行性能衡量 270
8.11.1IO子系统运行性能的衡量指标 270
8.11.2IO子系统的运行性能曲线 271
8.11.3IO资源主要性能衡量指标的测量 272
8.11.4IO子系统相关的主要Oracle指标 275
8.12几个IO子系统资源常见问题的讨论 275
8.12.1IO资源极度紧张但IO wait表现不高 275
8.12.2发现大量的磁盘Cache但似乎Oracle不理会 276
8.12.3磁盘利用率为100%,但处理能力还在不断上涨 277
8.12.4如何发现因存储系统导致的性能故障 277
8.13IO子系统资源优化的目标和道路 278
8.13.1IO资源问题的场景和优化道路 278
8.13.2明确存储故障,修正配置或修复存储 278
8.13.3降低存储系统的全局IO压力 280
8.13.4分布存储系统压力,使每个IO设备处于合理范畴 290
8.13.5合理调度业务程序,使IO资源使用平缓化 291
8.14IO子系统资源优化案例 291
第9章资源供给:网络子系统 294
9.1简单案例分享 294
9.2网络子系统和构成 294
9.2.1网卡、网络交换机(路由器)和网络 294
9.2.2网络延迟和吞吐量 296
9.2.3高速内联网和业务网络 297
9.2.4在低速网络下运行业务 298
9.3网络协议:TCP、UDP和NFS 298
9.3.1TCP 298
9.3.2UDP 299
9.3.3NFS 299
9.4网络参数配置和运行性能 299
9.4.1RTT、Bandwidth和BDP 300
9.4.2主要的网络参数 300
9.4.3主要的NFS参数 304
9.5网络带宽的扩展 305
9.5.1网卡绑定类型 305
9.5.2负载均衡模式网卡绑定配置 306
9.5.3负载均衡模式网卡绑定测试 308
9.6主要的网络性能监视工具 309
9.7网络子系统的运行性能衡量 313
9.7.1网络子系统运行性能的衡量指标 313
9.7.2网络子系统的运行性能曲线 314
9.7.3网络资源主要性能衡量指标的测量 315
9.7.4网络子系统相关的主要Oracle指标 317
9.8几个网络子系统资源常见问题的讨论 317
9.8.1系统中总是有SQL*Net message from client事件 317
9.8.2如何发现过量的网络交互引起的响应缓慢 318
9.8.3C语言处理数据的效能远远低于数据库存储过程 319
9.9网络子系统资源优化的目标和道路 319
9.9.1网络资源问题的场景和优化道路 319
9.9.2明确网络故障,修正配置或修复存储 320
9.9.3降低网络系统的全局输入压力 320
9.9.4分布网络系统压力,使每个网络设备处于合理范畴 322
9.9.5设置**的网络配置参数,使网络设备运行效率** 322
9.10网络子系统资源优化案例 322
第10章 资源供给:队列锁 325
10.1简单案例分享 325
10.2并发性控制和队列锁 326
10.2.1锁资源和锁资源的访问 326
10.2.2锁资源的感知 327
10.2.3队列锁相关的资源参数 329
10.2.4队列锁、事务锁和DML表格锁 330
10.2.5锁模式和意向锁 330
10.2.6主要的Oracle队列锁 332
10.3事务锁 333
10.3.1行锁和不加锁的一致性读 334
10.3.2TX锁冲突 338
10.3.3死锁 345
10.3.4基于TX lock的统计、事件和视图 350
10.3.5TX lock资源冲突的优化道路 354
10.4TM锁 355
10.4.1TM lock作用模式和作用场合 356
10.4.2dml_locks参数和TM lock 358
10.4.3ora-00054和TM lock 358
10.4.4TM lock的统计、等待事件和视图 359
10.4.5TM lock资源的优化 361
10.5sequence相关的锁 361
10.5.1SQ lock 361
10.5.2sequence导致的row cache lock 367
10.5.3DFS lock handle和SV lock 369
10.5.4sequence相关的统计、等待事件和视图 372
10.5.5sequence相关锁资源的优化 374
10.6HW lock和ST lock 375
10.6.1高水位的概念和高水位的移动 375
10.6.2HW lock冲突 378
10.6.3HWM和全表扫描 378
10.6.4HW lock相关统计、等待事件和视图 379
10.6.5HW lock资源的优化之道 381
10.7CF lock 382
10.7.1CF lock的作用场景 382
10.7.2rman备份或控制文件自动备份和CF lock 383
10.7.3dump current redo log持有CF lock 384
10.7.4CF lock相关统计、等待事件和视图 384
10.7.5CF lock资源的优化之道 385
10.8US lock 386
10.8.1隐含参数_undo_autotune和参数undo_retention 386
10.8.2事件10511和10512 388
10.9RO lock 388
10.9.1RO lock资源性能的相关因素 389
10.9.2RO lock涉及的主要事件 390
10.10 队列锁运行性能的衡量 391
10.10.1 队列锁运行性能的衡量 指标 391
10.10.2 队列锁资源的运行性能 曲线 391
10.10.3 队列锁运行性能衡量 指标的测量 391
10.11 队列锁资源优化的目标和道路 394
10.11.1 业务压力导致锁资源 冲突 394
10.11.2 业务不当导致过多持有 队列锁 395
10.11.3 持有队列锁的时间过长 396
10.11.4 缺乏事物失败思维导致 事务规模过大 396
10.11.5 调度和运维不当导致队列 锁长期持有 396
10.11.6 拥有队列锁资源的进程 处于僵死或不活动状态 396
10.12 队列锁资源优化案例 397
第11章 资源供给:row cache lock和library cache lock 399
11.1简单案例分享 399
11.2row cache lock和ddl lock 399
11.2.1row cache的组成 399
11.2.2row cache lock涉及的视图 408
11.2.3row cache lock冲突的排查 408
11.3library cache lock 409
11.3.1library cache lock和锁模式 410
11.3.2library cache lock的场景观察 412
11.3.3library cache lock涉及的视图 420
11.3.4library cache lock故障的排查和优化 420
11.4row cache lock和library cache lock运行性能的衡量 420
11.4.1row cache lock资源运行性能的衡量指标 420
11.4.2library cache lock资源运行性能的衡量指标 421
11.4.3row cache lock锁运行性能衡量指标的测量 422
11.4.4library cache lock运行性能衡量指标的测量 423
11.5row cache lock锁资源优化的目标和道路 426
11.5.1 数据字典的变化 426
11.5.2降低row cache object的重载 428
11.6library cache lock锁资源的目标和道路 428
11.7row cache lock和library cache lock锁资源优化案例 429
第12章 资源供给:buffer lock 431
12.1简单案例分享 431
12.2buffer header和buffer lock(pin) 431
12.2.1buffer header和buffer lock 432
12.2.2buffer lock的锁兼容 433
12.3buffer lock冲突的简单验证 434
12.3.1select和select操作 435
12.3.2select和update操作 436
12.3.3update和update之间 437
12.4buffer lock运行性能的衡量和测量 439
12.4.1buffer lock冲突的buffer block类型 439
12.4.2buffer lock资源运行性能的衡量指标 441
12.4.3buffer lock锁资源运行性能衡量指标的测量 441
12.5buffer lock锁资源优化的目标和道路 442
12.5.1降低buffer lock锁资源需求 443
12.5.2分散buffer lock局部热点,降低buffer lock并发性冲突 443
12.5.3降低buffer lock的持有时间 448
12.5.4read by other session的buffer lock冲突 448
12.6buffer lock锁资源优化案例 448
第13章 资源供给:latch 450
13.1简单案例分享 450
13.2并发性控制资源:latch或spinlock 450
13.2.1latch获得和释放的基本过程 450
13.2.2latch结构 453
13.2.3CAS、TAS及latch的spin 453
13.2.4Willing-To-Wait和no-Wait latch 455
13.3latch的spin和spin_count控制 456
13.3.1latch的spin和spin_count控制 456
13.3.2不同latch的spin count细粒度控制 457
13.3.3x$ksllclass视图和其他latch参数 459
13.3.4spin_count参数的合理设置 460
13.4latch资源冲突和性能优化 461
13.4.1latch冲突的简单认知 462
13.4.2常见的latch冲突 465
13.4.3latch性能相关的统计数据 465
13.4.4几张主要的latch视图 466
13.5主要的latch资源场景和冲突 468
13.5.1Cache buffers chains latch 468
13.5.2cache buffer lru chains latch 473
13.5.3library cache(lockpin)latch 476
13.5.4shared pool latch 481
13.5.5row cache objects latch 490
13.5.6undo global data latch 501
13.5.7object queue header operation latch和checkpoint queue latch 505
13.6latch资源运行性能的衡量 506
13.7latch资源优化的目标和道路 507
13.7.1降低latch资源需求 508
13.7.2分布热点latch资源 513
13.7.3降低latch资源的持有时间 520
13.7.4spin_count和latch资源优化 524
13.8latch资源优化案例 525
第14章 资源供给:mutex 527
14.1简单案例分享 527
14.2并发性控制资源:mutex 527
14.2.1Oracle 11gR2中包含的mutex 528
14.2.2mutex的工作方式 529
14.3mutex对应的wait event说明和场景 532
14.3.1mutex对应的wait event描述 532
14.3.2cursor:pin S事件 533
14.3.3cursor:mutex事件和library cache:mutex事件 535
14.3.4hash table mutex、cursor:mutex S|X和SQL高版本 537
14.4mutex资源冲突和性能优化 538
14.4.1常见的mutex冲突 538
14.4.2mutex性能相关的统计数据 539
14.4.3主要的mutex视图 539
14.5主要的mutex资源场景和冲突 542
14.5.1cursor pin mutex 542
14.5.2cursor parent mutex 542
14.5.3hash table mutex 542
14.5.4cursor stat mutex 543
14.6mutex资源的运行性能衡量和测量 543
14.6.1mutex资源运行性能衡量的主要指标 543
14.6.2mutex资源运行性能衡量指标的测量 544
14.7mutex资源优化的目标和道路 545
14.7.1降低mutex资源需求 545
14.7.2分布热点mutex资源 547
14.7.3减少mutex资源的持有时间 550
14.8mutex_spin_count、sleep_time、scheme和mutex资源优化 552
14.9mutex资源优化案例 553
|
|