Oracle数据库性能优化

Oracle数据库性能优化
7.9
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
出版社: 人民邮电出版社
2005-06
版次: 1
ISBN: 9787115134387
定价: 65.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 479页
字数: 763千字
正文语种: 简体中文
  •   《Oracle数据库性能优化》面向实际应用,从多个角度出发,对Oracle优化中的很多关键问题进行了深入全面的探讨,涵盖了Oracle优化的各个技术层面,从内存优化、IO规划及优化,到SQL优化调整,以较为完整的体系阐述了Oracle的优化技术。
      《Oracle数据库性能优化》给出了大量取自实际工作现场的实例。在分析实例的过程中,兼顾深度与广度,不仅对实际问题的现象、产生原因和相关的原理进行了深入浅出的讲解,更主要的是,结合实际应用环境,提供了一系列解决问题的思路和方法,包括详细的操作步骤,具有很强的实战性和可操作性,满足面向实际应用的读者需求。 第一篇优化工具篇
    第1章DBA优化之路 3
    1.1学习的建议 3
    1.2工具推荐 4
    1.3关于操作系统方面的建议 4
    1.4关于Oracle初始化参数的调整 5
    1.5关于Statspack的若干建议 6
    1.6关于logmnr在调优中的运用 7
    1.7关于materializedview在调优中的运用 8
    1.8关于StoredOutline在SQL优化中的运用 8
    1.9用dbms_profiler调优存储过程 8
    1.10优化前的准备工作 9
    1.11如何对SQL进行调整及优化 10
    1.12表结构优化实例 12
    1.13如何对session进行跟踪 12
    1.14基于等待事件的性能诊断方法 13
    1.15基于资源限制的性能诊断方法 14
    1.16如何减少共享池的碎片 15
    1.17监控表及索引的意义 17
    1.18通过优化SQL消除temp表空间膨胀 17
    1.19理解compress选项在优化上的作用 19
    1.20关于在线重定义table的建议 19
    1.21关于分区表在数据库设计时的建议 20
    1.22关于DataGuard在高可用方面的建议 20
    第2章Statspack高级调整 23
    2.1Statspack高级调整译文 24
    2.1.1Top5WaitEvents 24
    2.1.2等待时间快捷参考 26
    2.2关于Latch 27
    第3章Statspack使用的几个误区 33
    3.1以命中率为主衡量性能问题 33
    3.2快照的采样时间间隔问题 35
    3.3以偏概全 36
    3.4关于TIMED_STATISTICS参数的设定 36
    3.5你成了泄密者 37
    第4章TKPROF工具使用简介 39
    4.1TKPROF工具简介 39
    4.2TKPROF工具的使用步骤 40
    4.3TKPROF工具如何分析trace文件 41
    第5章使用Oracle的等待事件检测性能瓶颈 45
    5.1判断等待事件的相关视图 46
    5.1.1系统级统计信息v$system_event 46
    5.1.2会话级统计信息v$session_event 48
    5.1.3会话详细性能信息v$session_wait 48
    5.1.4会话等待事件的相关视图之间的关系 50
    5.2应该怎么考虑进行优化 50
    5.3主要等待事件 51
    5.4案例分析 54
    5.5小结 59
    5.6附录 59
    第6章使用SQL_TRACE/10046事件进行数据库诊断 63
    6.1SQL_TRACE及10046事件的基础介绍 63
    6.1.1SQL_TRACE说明 63
    6.1.210046事件说明 67
    6.1.3获取跟踪文件 68
    6.1.4读取当前session设置的参数 68
    6.2案例分析之一 69
    6.2.1问题描述 69
    6.2.2检查并跟踪数据库进程 69
    6.2.3检查trace文件 70
    6.2.4登录数据库检查相应表结构 71
    6.2.5解决方法 72
    6.2.6小结 73
    6.3案例分析之二 73
    6.3.1问题描述 73
    6.3.2dropuser出现问题 74
    6.3.3跟踪问题 74
    6.3.4问题定位 76
    6.3.5实际处理 77
    6.3.6小结 78
    6.410046与等待事件 78
    6.4.110046事件的使用 78
    6.4.210046与db_file_multiblock_read_count 80
    6.4.310046与执行计划的选择 82
    6.4.4db_file_multiblock_read_count与系统的IO能力 83
    6.4.5小结 85

    第二篇存储优化篇
    第7章表空间的存储管理与优化技术 89
    7.1表空间的作用与分类 89
    7.2字典管理表空间 90
    7.2.1字典管理表空间的特性 90
    7.2.2字典管理表空间的缺点 91
    7.2.3字典管理表空间的优化 92
    7.3本地管理表空间 92
    7.3.1本地管理表空间的特性 92
    7.3.2管理位图块的内部结构 94
    7.3.3本地管理表空间的优点 94
    7.4段自动管理表空间 95
    7.4.1段自动管理表空间的特性 95
    7.4.2位图管理段内部结构 96
    7.4.3段自动管理表空间的优化 98
    7.59i对表空间的管理优化 98
    7.5.1自动undo管理的表空间 98
    7.5.2完全本地的临时表空间 99
    7.6Oracle10g对表空间的优化 99
    7.7小结 99
    7.8附录 99
    第8章关于Oracle数据库中行迁移/行链接的问题 101
    8.1行迁移/行链接的简介 101
    8.2行迁移/行链接的检测方法 106
    8.3行迁移/行链接的清除方法 108
    第9章HWM与数据库性能的探讨 121
    9.1什么是HWM 121
    9.2初始创建的table中HWM的不同情况 122
    9.3insert数据时HWM的移动 128
    9.4HWM对性能的影响 131
    9.5何时应该降低HWM 135
    9.5.1对于LMT下的FLM 135
    9.5.2对于ASSM 136
    9.6如何降低HWM 137
    9.6.1Move 137
    9.6.2DBMS_REDEFINITION 142
    9.6.3Shrink 143
    9.6.4小结 148
    9.7其他几种会移动HWM的操作 148
    9.7.1InsertAppend 148
    9.7.2Truncate 152
    第10章调整I/O相关的等待 153
    10.1Oracle数据库I/O相关竞争等待简介 153
    10.2Oracle数据库I/O相关竞争等待的处理方法 154
    10.3Oracle数据库I/O相关的等待事件和相应的解决方法 157
    10.3.1数据文件相关的I/O等待事件 158
    10.3.2控制文件相关I/O等待事件 163
    10.3.3重做日志文件相关的等待事件 164
    10.3.4高速缓存区相关的I/O等待事件 166
    10.4小结 169
    第11章Oracle在Solaris的VxFS上的异步I/O问题 171
    11.1VxFS文件系统的简介 171
    11.2VxFS文件系统上如何启用异步I/O 171
    11.3如何检测在VxFS文件系统上是否支持异步I/O 172
    11.4如何查看VxFS文件系统上异步I/O的性能 173
    11.5如何转换VxFS文件系统上数据文件为支持异步I/O的
    数据文件 174
    第12章关于Freelists和FreelistGroups的研究 177
    12.1什么是Freelists 177
    12.2Freelists是否已经过时 178
    12.3Freelists存储在哪里 178
    12.4有多少种freelist 180
    12.5进程请求空闲块的过程 182
    12.6块在freelist间的移动 184
    12.7关于freelist将导致大量空间浪费的误解 185
    12.8关于Freelists和FreelistGroups的一个比喻 186
    12.9与Freelists和FreelistGroups相关的等待事件 186

    第三篇内存调整篇
    第13章自动PGA管理──原理及优化 193
    13.1什么是PGA内存自动管理 193
    13.2PGAAdvice功能 199
    13.3自动PGA内存管理相关初始化参数 201
    第14章32bitOracleSGA扩展原理和SGA与PGA的制约
    关系 203
    14.1如何识别32bit的Oracle 203
    14.2为何存在1.7GB的限制 204
    14.332bit下SGA与PGA之间的制约关系 207
    第15章KEEP池和RECYCLE池 213
    15.1Oracle的数据缓冲池 213
    15.2KEEP池和RECYCLE池 214
    15.2.1KEEP池 215
    15.2.2RECYCLE池 219
    15.3小结 221
    第16章深度分析数据库的热点块问题 223
    16.1热点块的定义 223
    16.2数据缓冲区的结构 223
    16.3如何确定热点对象 224
    16.4热点问题的解决 228
    16.5热点块的其他相关症状 230
    16.6小结 231
    第17章SharedPool原理及性能分析 233
    17.1SharedPool的基本原理 233
    17.2SharedPool的设置说明 233
    17.2.1基本知识 234
    17.2.2SharedPool的FreeList管理 235
    17.2.3了解X$KSMSP视图 240
    17.3诊断和解决ORA-04031错误 244
    17.3.1什么是ORA-04031错误 244
    17.3.2内存泄露 245
    17.3.3绑定变量和cursor_sharing 246
    17.3.4使用FlushSharedPool缓解共享池问题 247
    17.3.5shared_pool_reserved_size参数的设置及作用 247
    17.3.6其他 249
    17.3.7模拟ORA-04031错误 249
    17.4LibraryCachePin及LibraryCacheLock分析 252
    17.4.1LibraryCachePin等待事件 253
    17.4.2LibraryCacheLock等待事件 258
    17.5诊断案例一 259
    17.6诊断案例二 267
    17.7小结 269

    第四篇诊断案例篇
    第18章一次性能调整过程总结 273
    18.1系统环境 273
    18.2基本的调优过程 273
    18.2.1dbfilescatteredread 273
    18.2.2dbfilesequentialread 274
    18.2.3Enqueue 275
    18.2.4LatchFree 275
    18.3小结 281
    第19章电信业Oracle优化手记 283
    19.1一条SQL语句要运行2年怎么办 283
    19.2优化的传统定律和新时尚 285
    19.2.1index和表同一个表空间(过时) 286
    19.2.2定期重建索引(过时) 287
    19.2.3裸设备应该取代文件系统(过时) 287
    19.2.4初始参数设置cursor_sharing=similar(不一定
    有效) 288
    19.2.5初始参数设置fast=true(有效) 289
    19.3联机重做日志的优化 289
    19.3.1联机重做日志组内创建多个成员 289
    19.3.2加大redolog的容量 290
    第20章一次诊断和解决CPU利用率高的问题分析 291
    20.1问题的具体描述 291
    20.2问题的详细诊断解决过程 292
    20.3小结 296
    第21章一次异常内存消耗问题的诊断及解决 297
    21.1问题发现 297
    21.2解决过程 297
    21.2.1环境介绍 297
    21.2.2问题现象 297
    21.2.3对比分析 299
    21.2.4假设和分析 300
    21.2.5找到根源 302
    21.2.6解决问题 303
    21.3小结 305
    第22章如何捕获问题SQL解决过度CPU消耗问题 307
    22.1检查当前情况 307
    22.2使用Top工具辅助诊断 308
    22.3检查进程数量 309
    22.4登录数据库 309
    22.5捕获相关SQL 311
    22.6创建新的索引以消除全表扫描 313
    22.7观察系统状况 314
    22.8性能何以提高 315
    22.9小结 317
    第23章一条SQL导致数据库整体性能下降的诊断及解决 319
    23.1现象 319
    23.2诊断与解决 319
    第24章LibraryCacheLock成因和解决方法的探讨 327
    24.1几个相关的概念 327
    24.1.1什么是库高速缓存(LibraryCache) 327
    24.1.2一个SQL语句的处理流程 327
    24.1.3硬分析(HardParse) 328
    24.1.4软分析(SoftParse) 328
    24.1.5分析树 328
    24.1.6执行计划 329
    24.2了解LibraryCacheLock 329
    24.2.1几种容易引起LibraryCacheLock的情况 329
    24.2.2几种防患的方法 330
    24.3解决问题的方法 330
    24.3.1使用X$KGLLK和systemstate事件解决问题 331
    24.3.2使用v$session和systemstate事件解决问题 341
    24.4小结 348

    第五篇SQL优化及其他
    第25章Oracle数据库优化之索引(Index)简介 351
    25.1索引的作用 352
    25.2索引管理的常见问题 353
    25.3索引的管理 360
    25.4一些索引管理的脚本 363
    第26章CBO成本计算初探 367
    26.1建立测试数据 367
    26.2CBO计算成本原理初探 369
    26.3初始化参数以及优化器模式对执行计划的影响 371
    26.3.1初始化参数db_file_multiblock_read_count 371
    26.3.2初始化参数optimizer_index_cost_adj 373
    26.3.3优化器模式FIRST_ROWS对执行计划的影响 374
    26.4小结 375
    第27章Bitmap索引 377
    27.1Bitmap索引的概念 377
    27.2建立测试例子 378
    27.3Bitmap索引的特点 380
    27.3.1Bitmap索引比B树索引要节省空间 380
    27.3.2Bitmap索引建立的速度比较快 382
    27.3.3基于规则的优化器无法使用Bitmap索引 382
    27.3.4Bitmap索引存储NULL值 384
    27.3.5通过Bitmap索引访问表记录 385
    27.3.6Bitmap索引对批量DML操作只需要索引一次 390
    27.3.7Bitmap索引的锁机制 390
    27.4Bitmap索引的适用范围 390
    27.5Bitmap索引的使用限制 391
    27.6BitmapJoin索引简介 391
    第28章翻页SQL优化实例 395
    28.1系统环境 395
    28.2优化效果 395
    第29章使用物化视图进行翻页性能调整 405
    29.1系统环境 405
    29.2问题描述 405
    29.3捕获排序SQL语句 406
    29.4确定典型问题SQL 407
    29.5选择解决办法 409
    29.6进一步的调整优化 410
    29.7小结 412
    第30章如何给LargeDelete操作提速近千倍 413
    30.1背景描述 413
    30.1.1任务描述 413
    30.1.2数量级统计和描述 413
    30.2背景知识--BulkBinding 414
    30.2.1什么是BulkBinding 414
    30.2.2BulkBinding的优点是什么 415
    30.2.3如何进行批量绑定(BulkBinds) 415
    30.3优化过程详解 420
    30.3.1第一次优化--处理庞大的IN-LIST操作 420
    30.3.2第二次优化--分段操作 422
    30.3.3第三次优化--拆分DELETE操作 423
    30.3.4第四次优化--使用FORALL处理批量作业 424
    30.3.5第五次优化--使用FORALL+原子级操作 426
    30.4小结 430
    第31章Web分页与优化技术 431
    31.1什么是Web分页 431
    31.2表数据普通查询分页 431
    31.3FIRST_ROWS对分页的影响 434
    31.4带排序需求的分页 439
    31.5分页的速度优化 445
    31.6分页中的注意事项 450
    31.6.1真实案例──表中存在unionall的视图时,可能
    选择错误的执行计划 450
    31.6.2真实案例──rowid分页中,执行计划的错误选
    择与处理 452
    31.6.3真实案例──使用rownum得到意想不到的结果 455
    31.7小结 456
    第32章Oracle数据封锁机制研究 457
    32.1数据库锁的基本概念 457
    32.2Oracle多粒度封锁机制介绍 457
    32.2.1Oracle的TX锁(事务锁、行级锁) 458
    32.2.2TM锁(表级锁) 459
    32.3Oracle多粒度封锁机制的监控 461
    32.3.1系统视图介绍 461
    32.3.2监控脚本 462
    32.4Oracle多粒度封锁机制示例 463
    32.4.1操作同一行数据引发的锁阻塞 463
    32.4.2实体完整性引发的锁阻塞 465
    32.4.3参照完整性引发的锁阻塞 466
    32.4.4外键未加索引引发的锁阻塞 468
    32.4.5部分回滚对锁的影响 470
    32.4.6锁的排队机制 472
    32.4.7ITLSlot不足引发的锁阻塞 474
    32.4.8Bitmap索引引发的锁阻塞 475
    32.4.9死锁分析 475
    32.4.10表级锁的使能 476
    32.4.11row_locking参数 478
    32.5Oracle多粒度封锁机制总结 478
  • 内容简介:
      《Oracle数据库性能优化》面向实际应用,从多个角度出发,对Oracle优化中的很多关键问题进行了深入全面的探讨,涵盖了Oracle优化的各个技术层面,从内存优化、IO规划及优化,到SQL优化调整,以较为完整的体系阐述了Oracle的优化技术。
      《Oracle数据库性能优化》给出了大量取自实际工作现场的实例。在分析实例的过程中,兼顾深度与广度,不仅对实际问题的现象、产生原因和相关的原理进行了深入浅出的讲解,更主要的是,结合实际应用环境,提供了一系列解决问题的思路和方法,包括详细的操作步骤,具有很强的实战性和可操作性,满足面向实际应用的读者需求。
  • 目录:
    第一篇优化工具篇
    第1章DBA优化之路 3
    1.1学习的建议 3
    1.2工具推荐 4
    1.3关于操作系统方面的建议 4
    1.4关于Oracle初始化参数的调整 5
    1.5关于Statspack的若干建议 6
    1.6关于logmnr在调优中的运用 7
    1.7关于materializedview在调优中的运用 8
    1.8关于StoredOutline在SQL优化中的运用 8
    1.9用dbms_profiler调优存储过程 8
    1.10优化前的准备工作 9
    1.11如何对SQL进行调整及优化 10
    1.12表结构优化实例 12
    1.13如何对session进行跟踪 12
    1.14基于等待事件的性能诊断方法 13
    1.15基于资源限制的性能诊断方法 14
    1.16如何减少共享池的碎片 15
    1.17监控表及索引的意义 17
    1.18通过优化SQL消除temp表空间膨胀 17
    1.19理解compress选项在优化上的作用 19
    1.20关于在线重定义table的建议 19
    1.21关于分区表在数据库设计时的建议 20
    1.22关于DataGuard在高可用方面的建议 20
    第2章Statspack高级调整 23
    2.1Statspack高级调整译文 24
    2.1.1Top5WaitEvents 24
    2.1.2等待时间快捷参考 26
    2.2关于Latch 27
    第3章Statspack使用的几个误区 33
    3.1以命中率为主衡量性能问题 33
    3.2快照的采样时间间隔问题 35
    3.3以偏概全 36
    3.4关于TIMED_STATISTICS参数的设定 36
    3.5你成了泄密者 37
    第4章TKPROF工具使用简介 39
    4.1TKPROF工具简介 39
    4.2TKPROF工具的使用步骤 40
    4.3TKPROF工具如何分析trace文件 41
    第5章使用Oracle的等待事件检测性能瓶颈 45
    5.1判断等待事件的相关视图 46
    5.1.1系统级统计信息v$system_event 46
    5.1.2会话级统计信息v$session_event 48
    5.1.3会话详细性能信息v$session_wait 48
    5.1.4会话等待事件的相关视图之间的关系 50
    5.2应该怎么考虑进行优化 50
    5.3主要等待事件 51
    5.4案例分析 54
    5.5小结 59
    5.6附录 59
    第6章使用SQL_TRACE/10046事件进行数据库诊断 63
    6.1SQL_TRACE及10046事件的基础介绍 63
    6.1.1SQL_TRACE说明 63
    6.1.210046事件说明 67
    6.1.3获取跟踪文件 68
    6.1.4读取当前session设置的参数 68
    6.2案例分析之一 69
    6.2.1问题描述 69
    6.2.2检查并跟踪数据库进程 69
    6.2.3检查trace文件 70
    6.2.4登录数据库检查相应表结构 71
    6.2.5解决方法 72
    6.2.6小结 73
    6.3案例分析之二 73
    6.3.1问题描述 73
    6.3.2dropuser出现问题 74
    6.3.3跟踪问题 74
    6.3.4问题定位 76
    6.3.5实际处理 77
    6.3.6小结 78
    6.410046与等待事件 78
    6.4.110046事件的使用 78
    6.4.210046与db_file_multiblock_read_count 80
    6.4.310046与执行计划的选择 82
    6.4.4db_file_multiblock_read_count与系统的IO能力 83
    6.4.5小结 85

    第二篇存储优化篇
    第7章表空间的存储管理与优化技术 89
    7.1表空间的作用与分类 89
    7.2字典管理表空间 90
    7.2.1字典管理表空间的特性 90
    7.2.2字典管理表空间的缺点 91
    7.2.3字典管理表空间的优化 92
    7.3本地管理表空间 92
    7.3.1本地管理表空间的特性 92
    7.3.2管理位图块的内部结构 94
    7.3.3本地管理表空间的优点 94
    7.4段自动管理表空间 95
    7.4.1段自动管理表空间的特性 95
    7.4.2位图管理段内部结构 96
    7.4.3段自动管理表空间的优化 98
    7.59i对表空间的管理优化 98
    7.5.1自动undo管理的表空间 98
    7.5.2完全本地的临时表空间 99
    7.6Oracle10g对表空间的优化 99
    7.7小结 99
    7.8附录 99
    第8章关于Oracle数据库中行迁移/行链接的问题 101
    8.1行迁移/行链接的简介 101
    8.2行迁移/行链接的检测方法 106
    8.3行迁移/行链接的清除方法 108
    第9章HWM与数据库性能的探讨 121
    9.1什么是HWM 121
    9.2初始创建的table中HWM的不同情况 122
    9.3insert数据时HWM的移动 128
    9.4HWM对性能的影响 131
    9.5何时应该降低HWM 135
    9.5.1对于LMT下的FLM 135
    9.5.2对于ASSM 136
    9.6如何降低HWM 137
    9.6.1Move 137
    9.6.2DBMS_REDEFINITION 142
    9.6.3Shrink 143
    9.6.4小结 148
    9.7其他几种会移动HWM的操作 148
    9.7.1InsertAppend 148
    9.7.2Truncate 152
    第10章调整I/O相关的等待 153
    10.1Oracle数据库I/O相关竞争等待简介 153
    10.2Oracle数据库I/O相关竞争等待的处理方法 154
    10.3Oracle数据库I/O相关的等待事件和相应的解决方法 157
    10.3.1数据文件相关的I/O等待事件 158
    10.3.2控制文件相关I/O等待事件 163
    10.3.3重做日志文件相关的等待事件 164
    10.3.4高速缓存区相关的I/O等待事件 166
    10.4小结 169
    第11章Oracle在Solaris的VxFS上的异步I/O问题 171
    11.1VxFS文件系统的简介 171
    11.2VxFS文件系统上如何启用异步I/O 171
    11.3如何检测在VxFS文件系统上是否支持异步I/O 172
    11.4如何查看VxFS文件系统上异步I/O的性能 173
    11.5如何转换VxFS文件系统上数据文件为支持异步I/O的
    数据文件 174
    第12章关于Freelists和FreelistGroups的研究 177
    12.1什么是Freelists 177
    12.2Freelists是否已经过时 178
    12.3Freelists存储在哪里 178
    12.4有多少种freelist 180
    12.5进程请求空闲块的过程 182
    12.6块在freelist间的移动 184
    12.7关于freelist将导致大量空间浪费的误解 185
    12.8关于Freelists和FreelistGroups的一个比喻 186
    12.9与Freelists和FreelistGroups相关的等待事件 186

    第三篇内存调整篇
    第13章自动PGA管理──原理及优化 193
    13.1什么是PGA内存自动管理 193
    13.2PGAAdvice功能 199
    13.3自动PGA内存管理相关初始化参数 201
    第14章32bitOracleSGA扩展原理和SGA与PGA的制约
    关系 203
    14.1如何识别32bit的Oracle 203
    14.2为何存在1.7GB的限制 204
    14.332bit下SGA与PGA之间的制约关系 207
    第15章KEEP池和RECYCLE池 213
    15.1Oracle的数据缓冲池 213
    15.2KEEP池和RECYCLE池 214
    15.2.1KEEP池 215
    15.2.2RECYCLE池 219
    15.3小结 221
    第16章深度分析数据库的热点块问题 223
    16.1热点块的定义 223
    16.2数据缓冲区的结构 223
    16.3如何确定热点对象 224
    16.4热点问题的解决 228
    16.5热点块的其他相关症状 230
    16.6小结 231
    第17章SharedPool原理及性能分析 233
    17.1SharedPool的基本原理 233
    17.2SharedPool的设置说明 233
    17.2.1基本知识 234
    17.2.2SharedPool的FreeList管理 235
    17.2.3了解X$KSMSP视图 240
    17.3诊断和解决ORA-04031错误 244
    17.3.1什么是ORA-04031错误 244
    17.3.2内存泄露 245
    17.3.3绑定变量和cursor_sharing 246
    17.3.4使用FlushSharedPool缓解共享池问题 247
    17.3.5shared_pool_reserved_size参数的设置及作用 247
    17.3.6其他 249
    17.3.7模拟ORA-04031错误 249
    17.4LibraryCachePin及LibraryCacheLock分析 252
    17.4.1LibraryCachePin等待事件 253
    17.4.2LibraryCacheLock等待事件 258
    17.5诊断案例一 259
    17.6诊断案例二 267
    17.7小结 269

    第四篇诊断案例篇
    第18章一次性能调整过程总结 273
    18.1系统环境 273
    18.2基本的调优过程 273
    18.2.1dbfilescatteredread 273
    18.2.2dbfilesequentialread 274
    18.2.3Enqueue 275
    18.2.4LatchFree 275
    18.3小结 281
    第19章电信业Oracle优化手记 283
    19.1一条SQL语句要运行2年怎么办 283
    19.2优化的传统定律和新时尚 285
    19.2.1index和表同一个表空间(过时) 286
    19.2.2定期重建索引(过时) 287
    19.2.3裸设备应该取代文件系统(过时) 287
    19.2.4初始参数设置cursor_sharing=similar(不一定
    有效) 288
    19.2.5初始参数设置fast=true(有效) 289
    19.3联机重做日志的优化 289
    19.3.1联机重做日志组内创建多个成员 289
    19.3.2加大redolog的容量 290
    第20章一次诊断和解决CPU利用率高的问题分析 291
    20.1问题的具体描述 291
    20.2问题的详细诊断解决过程 292
    20.3小结 296
    第21章一次异常内存消耗问题的诊断及解决 297
    21.1问题发现 297
    21.2解决过程 297
    21.2.1环境介绍 297
    21.2.2问题现象 297
    21.2.3对比分析 299
    21.2.4假设和分析 300
    21.2.5找到根源 302
    21.2.6解决问题 303
    21.3小结 305
    第22章如何捕获问题SQL解决过度CPU消耗问题 307
    22.1检查当前情况 307
    22.2使用Top工具辅助诊断 308
    22.3检查进程数量 309
    22.4登录数据库 309
    22.5捕获相关SQL 311
    22.6创建新的索引以消除全表扫描 313
    22.7观察系统状况 314
    22.8性能何以提高 315
    22.9小结 317
    第23章一条SQL导致数据库整体性能下降的诊断及解决 319
    23.1现象 319
    23.2诊断与解决 319
    第24章LibraryCacheLock成因和解决方法的探讨 327
    24.1几个相关的概念 327
    24.1.1什么是库高速缓存(LibraryCache) 327
    24.1.2一个SQL语句的处理流程 327
    24.1.3硬分析(HardParse) 328
    24.1.4软分析(SoftParse) 328
    24.1.5分析树 328
    24.1.6执行计划 329
    24.2了解LibraryCacheLock 329
    24.2.1几种容易引起LibraryCacheLock的情况 329
    24.2.2几种防患的方法 330
    24.3解决问题的方法 330
    24.3.1使用X$KGLLK和systemstate事件解决问题 331
    24.3.2使用v$session和systemstate事件解决问题 341
    24.4小结 348

    第五篇SQL优化及其他
    第25章Oracle数据库优化之索引(Index)简介 351
    25.1索引的作用 352
    25.2索引管理的常见问题 353
    25.3索引的管理 360
    25.4一些索引管理的脚本 363
    第26章CBO成本计算初探 367
    26.1建立测试数据 367
    26.2CBO计算成本原理初探 369
    26.3初始化参数以及优化器模式对执行计划的影响 371
    26.3.1初始化参数db_file_multiblock_read_count 371
    26.3.2初始化参数optimizer_index_cost_adj 373
    26.3.3优化器模式FIRST_ROWS对执行计划的影响 374
    26.4小结 375
    第27章Bitmap索引 377
    27.1Bitmap索引的概念 377
    27.2建立测试例子 378
    27.3Bitmap索引的特点 380
    27.3.1Bitmap索引比B树索引要节省空间 380
    27.3.2Bitmap索引建立的速度比较快 382
    27.3.3基于规则的优化器无法使用Bitmap索引 382
    27.3.4Bitmap索引存储NULL值 384
    27.3.5通过Bitmap索引访问表记录 385
    27.3.6Bitmap索引对批量DML操作只需要索引一次 390
    27.3.7Bitmap索引的锁机制 390
    27.4Bitmap索引的适用范围 390
    27.5Bitmap索引的使用限制 391
    27.6BitmapJoin索引简介 391
    第28章翻页SQL优化实例 395
    28.1系统环境 395
    28.2优化效果 395
    第29章使用物化视图进行翻页性能调整 405
    29.1系统环境 405
    29.2问题描述 405
    29.3捕获排序SQL语句 406
    29.4确定典型问题SQL 407
    29.5选择解决办法 409
    29.6进一步的调整优化 410
    29.7小结 412
    第30章如何给LargeDelete操作提速近千倍 413
    30.1背景描述 413
    30.1.1任务描述 413
    30.1.2数量级统计和描述 413
    30.2背景知识--BulkBinding 414
    30.2.1什么是BulkBinding 414
    30.2.2BulkBinding的优点是什么 415
    30.2.3如何进行批量绑定(BulkBinds) 415
    30.3优化过程详解 420
    30.3.1第一次优化--处理庞大的IN-LIST操作 420
    30.3.2第二次优化--分段操作 422
    30.3.3第三次优化--拆分DELETE操作 423
    30.3.4第四次优化--使用FORALL处理批量作业 424
    30.3.5第五次优化--使用FORALL+原子级操作 426
    30.4小结 430
    第31章Web分页与优化技术 431
    31.1什么是Web分页 431
    31.2表数据普通查询分页 431
    31.3FIRST_ROWS对分页的影响 434
    31.4带排序需求的分页 439
    31.5分页的速度优化 445
    31.6分页中的注意事项 450
    31.6.1真实案例──表中存在unionall的视图时,可能
    选择错误的执行计划 450
    31.6.2真实案例──rowid分页中,执行计划的错误选
    择与处理 452
    31.6.3真实案例──使用rownum得到意想不到的结果 455
    31.7小结 456
    第32章Oracle数据封锁机制研究 457
    32.1数据库锁的基本概念 457
    32.2Oracle多粒度封锁机制介绍 457
    32.2.1Oracle的TX锁(事务锁、行级锁) 458
    32.2.2TM锁(表级锁) 459
    32.3Oracle多粒度封锁机制的监控 461
    32.3.1系统视图介绍 461
    32.3.2监控脚本 462
    32.4Oracle多粒度封锁机制示例 463
    32.4.1操作同一行数据引发的锁阻塞 463
    32.4.2实体完整性引发的锁阻塞 465
    32.4.3参照完整性引发的锁阻塞 466
    32.4.4外键未加索引引发的锁阻塞 468
    32.4.5部分回滚对锁的影响 470
    32.4.6锁的排队机制 472
    32.4.7ITLSlot不足引发的锁阻塞 474
    32.4.8Bitmap索引引发的锁阻塞 475
    32.4.9死锁分析 475
    32.4.10表级锁的使能 476
    32.4.11row_locking参数 478
    32.5Oracle多粒度封锁机制总结 478
查看详情
好书推荐 / 更多
Oracle数据库性能优化
胡迁作品:大象席地而坐
胡迁 著
Oracle数据库性能优化
OPUS作品(套装上下册)
[日]今敏 著;Mrs.X 译
Oracle数据库性能优化
近代能乐集(三岛由纪夫戏剧代表作,爱与美与死的永恒角力)
[日]三岛由纪夫 著;玖羽 译
Oracle数据库性能优化
上海字记:百年汉字设计档案
姜庆共、刘瑞樱 著
Oracle数据库性能优化
唐宋“古文运动”与士大夫文学
朱刚 著;王水照 编
Oracle数据库性能优化
行星
[英]贾尔斯•斯帕罗;Giles•Sparrow
Oracle数据库性能优化
马里琳·鲁滨逊作品基列三部曲:基列家书(2005年获得普利策小说奖,《卫报》21世纪百本伟大小说
玛丽莲·罗宾逊 著;李尧 译
Oracle数据库性能优化
特拉法尔加战役
朱利安·S.科贝特(Julian,S.,Corbett) 著;陈骆 译
Oracle数据库性能优化
大雪将至
[奥地利]罗伯特•泽塔勒 著
Oracle数据库性能优化
中国叙事学(第2版)
[美]浦安迪(Andrew H.Plaks) 著
Oracle数据库性能优化
肉体与石头:西方文明中的身体与城市
[美]理查德·桑内特 著;黄煜文 译
Oracle数据库性能优化
维多利亚女王:作为君王和女性的一生
[英]露西·沃斯利 著;张佩 译