您好,欢迎访问三七文档
目录第一篇优化工具篇第1章DBA优化之路31.1学习的建议31.2工具推荐41.3关于操作系统方面的建议41.4关于Oracle初始化参数的调整51.5关于Statspack的若干建议61.6关于logmnr在调优中的运用71.7关于materializedview在调优中的运用81.8关于StoredOutline在SQL优化中的运用81.9用dbms_profiler调优存储过程81.10优化前的准备工作91.11如何对SQL进行调整及优化101.12表结构优化实例121.13如何对session进行跟踪121.14基于等待事件的性能诊断方法131.15基于资源限制的性能诊断方法141.16如何减少共享池的碎片151.17监控表及索引的意义171.18通过优化SQL消除temp表空间膨胀171.19理解compress选项在优化上的作用191.20关于在线重定义table的建议191.21关于分区表在数据库设计时的建议201.22关于DataGuard在高可用方面的建议20第2章Statspack高级调整232.1Statspack高级调整译文242.1.1Top5WaitEvents242.1.2等待时间快捷参考262.2关于Latch272.3小结30第3章Statspack使用的几个误区333.1以命中率为主衡量性能问题333.2快照的采样时间间隔问题353.3以偏概全363.4关于Timed_statistics参数的设定363.5你成了泄密者37第4章使用TKPROF工具简介394.1TKPROF工具简介394.2TKPROF工具的使用步骤404.3TKPROF工具如何分析trace文件41第5章使用Oracle的等待事件检测性能瓶颈455.1判断等待事件的相关视图465.1.1系统级统计信息v$system_event465.1.2会话级统计信息v$session_event485.1.3会话详细性能信息v$session_wait485.1.4会话等待事件的相关视图之间的关系505.2应该怎么考虑进行优化505.3主要等待事件515.4案例分析545.5小结595.6附录59第6章使用SQL_TRACE/10046事件进行数据库诊断636.1SQL_TRACE及10046事件的基础介绍636.1.1SQL_TRACE说明636.1.210046事件说明666.1.3获取跟踪文件686.1.4读取当前session设置的参数686.2案例分析之一696.2.1问题描述696.2.2检查并跟踪数据库进程696.2.3检查trace文件706.2.4登录数据库检查相应表结构716.2.5解决方法726.2.6小结736.3案例分析之二736.3.1问题描述736.3.2dropuser出现问题736.3.3跟踪问题746.3.4问题定位766.3.5实际处理776.3.6小结786.410046与等待事件786.4.110046事件的使用786.4.210046与db_file_multiblock_read_count806.4.310046与执行计划的选择826.4.4db_file_multiblock_read_count与系统的IO能力836.4.5小结85第二篇存储优化篇第7章表空间的存储管理与优化技术897.1表空间的作用与分类897.2字典管理表空间907.2.1字典管理表空间的特性907.2.2字典管理表空间的缺点917.2.3字典管理表空间的优化927.3本地管理表空间927.3.1本地管理表空间的特性927.3.2管理位图块的内部结构937.3.3本地管理表空间的优点947.4段自动管理表空间957.4.1段自动管理表空间的特性957.4.2位图管理段内部结构967.4.3段自动管理表空间的优化977.59i对表空间的管理优化987.5.1自动undo管理的表空间987.5.2完全本地的临时表空间987.6Oracle10g对表空间的优化997.7小结997.8附录99第8章关于Oracle数据库中行迁移/行链接的问题1018.1行迁移/行链接的简介1018.2行迁移/行链接的检测方法1068.3行迁移/行链接的清除方法108第9章HWM与数据库性能的探讨1219.1什么是HWM1219.2初始创建的table中HWM的不同情况1229.3insert数据时HWM的移动1289.4HWM对性能的影响1319.5何时该降低HWM1359.5.1对于LMT下FLM1359.5.2对于ASSM1369.6如何降低HWM1379.6.1Move1379.6.2DBMS_REDEFINITION1429.6.3Shrink1439.6.4小结1489.7其余几种会移动HWM的操作1489.7.1InsertAppend1489.7.2Truncate152第10章调整I/O相关的等待15310.1Oracle数据库I/O相关竞争等待简介15310.2Oracle数据库I/O相关竞争等待的处理方法15510.3Oracle数据库I/O相关的等待事件和相应的解决方法15810.3.1数据文件相关的I/O等待事件15910.3.2控制文件相关I/O等待事件16410.3.3重做日志文件相关的等待事件16510.3.4高速缓存区相关的I/O等待事件16710.4结论170第11章Oracle在Solaris的VxFS上的异步I/O问题17111.1VxFS文件系统的简介17111.2VxFS文件系统上如何启用异步I/O17111.3如何检测在VXFS文件系统上是否支持异步I/O17211.4如何查看VxFS文件系统上异步I/O的性能17311.5如何转换VXFS文件系统上数据文件为支持异步I/O的数据文件174第12章关于Freelists和FreelistGroups的研究17712.1什么是Freelists17712.2Freelists是否已经过时17812.3Freelists存储在哪里17812.4有多少种freelist18012.5进程请求空闲块的过程18212.6块在freelist间的移动18412.7关于freelist将导致大量空间浪费的误解18612.8对于Freelists和FreelistGroups的一个比喻18712.9与Freelists和FreelistGroups相关的等待事件187第三篇内存调整篇第13章自动PGA管理──原理及优化19313.1什么是PGA内存自动管理19313.2PGAAdvice功能19913.3自动PGA内存管理相关初始化参数201第14章32bitOracleSGA扩展原理和SGA与PGA的制约关系20314.1如何识别32bit的Oracle20314.2为何存在1.7GB的限制20414.332bit下SGA与PGA之间的制约关系208第15章KEEP池和RECYCLE池21315.1Oracle的数据缓冲池21315.2KEEP池和RECYCLE池21415.2.1KEEP池21515.2.2RECYCLE池21915.3小结222第16章深度分析数据库的热点块问题22316.1热点块的定义22316.2数据缓冲区的结构22316.3如何确定热点对象22416.4热点问题的解决22816.5热点块的其他相关症状23016.6小结231第17章SharedPool原理及性能分析23217.1SharedPool的基本原理23317.2SharedPool的设置说明23317.2.1基本知识23317.2.2SharedPool的FreeList管理23417.2.3了解X$KSMSP视图24017.3诊断和解决ORA-04031错误24417.3.1什么是ORA-04031错误24417.3.2内存泄露24517.3.3绑定变量和cursor_sharing24617.3.4使用FlushSharedPool缓解共享池问题24617.3.5shared_pool_reserved_size参数的设置及作用24717.3.6其他24817.3.7模拟ORA-04031错误24917.4LibraryCachePin及LibraryCacheLock分析25217.4.1LibraryCachePin等待事件25217.4.2LibraryCacheLock等待事件25817.5诊断案例一25917.6诊断案例二26617.7小结269第四篇诊断案例篇第18章一次性能调整过程总结27318.1系统环境27318.2基本的调优过程27318.2.1dbfilescatteredread27418.2.2dbfilesequentialread27418.2.3Enqueue27518.2.4LatchFree27618.3小结282第19章电信业Oracle优化手记28319.1一条SQL语句要跑2年怎么办28319.2优化的传统定律和新时尚28619.2.1index和表同一个表空间──过时28619.2.2定期重建索引──过时28719.2.3裸设备应该取代文件系统──过时28719.2.4初始参数设置cursor_sharing=similar──不一定有效28819.2.5初始参数设置fast=true──有效28919.3联机重做日志的优化29019.3.1联机重做日志组内创建多个成员29019.3.2加大redolog的容量290第20章一次诊断和解决CPU利用率高的问题分析29120.1问题的具体描述29120.2问题的详细诊断解决过程29220.3小结296第21章一次异常内存消耗问题的诊断及解决29721.1问题发现29721.2解决过程29721.2.1环境介绍29721.2.2问题现象29821.2.3对比分析29921.2.4假设和分析30021.2.5找到根源30221.2.6解决问题30321.3小结305第22章诊断案例──如何捕获问题SQL解决过度CPU消耗问题30722.1检查当前情况30722.2使用Top工具辅助诊断30822.3检查进程数量30922.4登录数据库30922.5捕获相关SQL31222.6创建新的索引以消除全表扫描31422.7观察系统状况31422.8性能何以提高31622.9小结317第23章一条SQL导致数据库整体性能下降的诊断和解决的全过程31923.1现象31923.2诊断与解决319第24章LibraryCacheLock成因和解决方法的探讨32724.1几个相关的概念32724.1.1什么是库高速缓存(LibraryCache)32824.1.2一个SQL语句的处理流程32824.1.3硬分析(HardParse)32824.1.4软分析(SoftParse)32924.1.5分析树32924.1.6执行计划33024.2了解LibraryCacheLock33024.2.1几种容易引起LibraryCacheLock的情况33024.2.2几种防患的方法33124.3解决问题的方法33124.3.1使用X$KGLLK和systemstate事件解决问题33224.3.2使用v$session和systemstate事件解决问题34224.4小结349第五篇SQL优化及其他第25章Oracle数据库优化之索引(Index)简介35125.1索引的作用35225.2索引管理的常见问题35325.3索引的管理36025.4一些索引管理的脚本364第26章CBO成本计算简介36726.1建立测试数据36726.2CBO计算成本原理初探36926.3初始化参数以及优化器模式对执行计划的影响37126.3.1初始化参数db_file_multiblock_read_count37126.3.2初始化参数optimizer_index_cost_adj37326.3.3优化器模式FIRST_ROWS对执行计划的影响37426.4小结375第27章Bitmap索引37727
本文标题:优化工具篇
链接地址:https://www.777doc.com/doc-259985 .html