版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北京尚观科技有限公司 版权所有 第1章 性能优化概述91.1优化相关的问题101.1.1 谁进行优化101.1.2 为什么要优化101.1.3 优化到什么程度111.2 优化阶段121.2.1 优化到什么程度121.2.2 数据库配置121.2.3 添加新的应用程序121.2.4 运行过程中的优化131.3 优化目标141.3.1 优化的目标141.3.2 可衡量的优化的目标141.4 常见优化问题161.4.1 会话管理不佳161.4.2 游标管理不佳161.4.3 关系设计不佳161.4.4 常见优化问题的后果171.5 生产过程中的优化步骤18第2章 诊断与调优工具192.1 告警日志2
2、02.1.1 告警日志主要内容202.1.2 在告警日志中快速查找信息222.2 sql 跟踪232.2.1 sql_trace的作用232.2.2 10046事件262.3 资料视图272.3.1 什么是oracle资料272.3.2 v$statname视图292.3.3 v$mystat视图292.3.4 v$sesstat视图302.3.5 v$sysstat视图302.3.6 资料视图应用举例312.4 等待事件342.4.1 什么oracle等待事件342.4.2 v$session_event视图352.4.3 v$system_event视图352.4.4 v$session_
3、wait视图352.5 statspack392.5.1 statspack安装设置392.5.2 生成第一份statspack报告402.5.3 statspack报告介绍412.5.4 自动收集快照43第3章 i/o调优453.1 进程与i/o463.2 调节i/o的指导方针473.3 相关i/o的视图与statspack中的i/o资料493.4 全表扫描、索引扫描与物理读553.4.1 全表扫描与索引扫描553.4.2 db_file_multiblock_read_count、区大小与全表扫描563.4.3 全表扫描与非全扫的等待事件573.4.4 全表扫描的资料573.5 dbwn与
4、物理写593.6 日志文件与归档日志613.6.1 日志文件613.6.2 日志文件的等待事件623.6.3 归档日志63第4章 共享池644.1 什么是共享池664.1.1 共享池简介664.1.2 设定、查看共享池的大小674.1.3 10g中设置共享池的大小684.1.4 共享池调优714.2 库缓存724.2.1 库缓存中的信息724.2.2 库缓存调优734.2.3 补充:library cache lock、library cache pin等待事件824.2.4 库缓存视图824.2.5 olap与oltp的区别834.3 游标与共享sql844.3.1 游标844.3.2 关于
5、游标的视图844.4 库缓存调优与pin频繁使用的对象954.4.1 使用视图进行库缓存大小测试954.4.2 pin频繁使用的对象和大对象964.5 保留区与ora-04031994.5.1 保留区994.5.2 共享池碎片1014.6 共享池顾问1034.7 库缓存调优总结1054.8 调优字典缓存1064.9 大池1084.10 共享池相关的闩1094.10.1 什么是闩1094.10.2 shared pool闩1104.10.3 library cache闩110第5章 buffer cache故障排除与调优1125.1 buffer cache工作原理1135.1.1 buffer
6、 cache作用1135.1.2 buffer cache大小的设置1135.1.3 buffer cache工作原理简述1145.1.4 lru的应用1205.1.5 脏块与脏lru链的应用1235.2 块的读1265.3 块的写1345.3.1 写脏块1345.3.2 增量检查点1355.3.3 检查点队列1365.3.4 检查点设置1415.3.5 通过视图了解与脏块有关的信息1425.4 逻辑读的两种类型1495.5 cr块1535.5.1 cr块的定义1535.5.2 单一会话中的cr块1545.5.3 多会话中的cr块:select篇1575.5.4 多会话中的cr块:update
7、篇1605.5.5 多会话中的cr块:insert、delete篇1605.5.6 补充说明1605.6 等待事件1625.6.1 两个查看等待事件的脚本1625.6.2 cache buffers chains 与cache buffers chains latch1635.6.3 cache buffer lru chain latches1655.6.4 buffer busy waits等待1655.6.5 free buffer waits等待事件167第6章 redo buffer与java池1716.1 redo buffer1726.1.1 重做缓存的作用1726.1.2 重做
8、缓存的作用1726.1.3 重做缓存的作用1736.1.4 重做缓存的作用1756.2java池181第7章 sga管理1837.1 sga管理1847.1.1 sga_target与sga_max_size1847.1.2 asmm内存组件和非asmm内存组件的改变187第8章 pga与排序1908.1 uga(the user global area):用户全局区1928.2 cga (the call global area):调用全局区(会话区)1938.3 pga(program global area):程序全局区1958.4 pga的资料1978.5 pga的管理1998.6 工
9、作区与工作方式2038.7 超过pga目标值的情况2088.8 pga内存的回收2128.9 相关视图2148.10 手动pga管理2198.11 再论游标2238.12堆栈区管理228第9章 sql调优2309.1 访问路径2319.1.1 访问路径2319.1.2 全表扫描2319.1.3 rowid访问2329.1.4 索引扫描2329.2 连接2339.2.1 嵌套循环2339.2.2 排序合并连接2349.2.3 hash连接2359.3 优化器2379.2.1 优化器2379.2.2 cbo生成执行计划的步骤2379.2.3 cbo的组成部分2389.2.4 视图合并2389.4
10、执行计划与hints(提示)2449.4.1 使用工具查看计划2449.4.2 hints(提示)2489.5 大纲2529.5.1 什么是大纲、大纲的作用、大纲如何才能被使用2529.5.2 创建大纲2539.5.3 大纲的使用2569.5.4 维护大纲2589.6 诊断工具2599.6.1 statspack报告2599.6.2 explain plan for工具2629.6.3 sql_trace2639.6.4 sql*plus autotrace263第10章 资料收集26510.1 什么是资料26610.1.1 什么是资料26610.1.2 资料的收集与查看26710.1.3 动
11、态采样27210.1.4 系统资料27310.1.5 资料的导入、导出27410.2 柱状图27610.2.1 柱状图简介27610.2.2 为列创建柱状图27710.2.3 实验柱状图的作用27710.2.4 绑定变量窥视28010.3 段层资料28210.4 analyze28410.4.1 analyze简介28410.4.2 收集索引资料286第11章 存储空间管理28911.1 区的注意事项28911.2 大区的优、缺点28911.3 块28911.4 大块的优点和缺点28911.5 小块的优缺点28911.6 oltp与olap中区和块使用的不同289第12章 聚簇28912.1
12、索引聚簇的应用与管理28912.1.1 什么是索引聚簇28912.1.2 索引聚簇的创建28912.1.3 索引聚簇表与普通表的区别28912.2 hash聚簇的应用与管理28912.2.1 什么是hash聚簇28912.2.2 hash簇的创建28912.2.3 hash聚簇性能测试289第13章 索引组织表28913.1 索引组织表28913.1.1 索引组织表与堆表的不同28913.1.2 索引组织表的创建28913.1.3 索引组织表上的次要索引28913.1.4 映像表与位图索引28913.1.5 溢出段28913.2 索引组织表相关视图289第14章 重要的oracle特性2891
13、4.1 非b*树型索引28914.1.1 索引类型28914.1.2 压缩索引28914.1.3 反向键索引28914.2 在线重定义表28914.2.1 在线重定义表28914.2.2 实例28914.3 oltp与olap的注意事项28914.3.1 oltp型应用28914.3.2 olap型应用289第15章 分区28915.1 区间分区28915.1.1 分区28915.1.2 创建和管理区间分区28915.1.3 分区消除28915.1.4 行移动28915.1.5 分区资料的收集28915.2 hash分区28915.3 列表分区28915.4 组合分区28915.5 局部索引分
14、区28915.5.1 局部索引28915.5.2 局部索引和唯一约束28915.6 全局索引分区28915.6.1 全局索引28915.6.2 全局索引的应用289第16章 实体化视图28916.1 实体化视图概述28916.2 创建实体化视图28916.2.1 创建实体化视图注意事项28916.2.2 创建实体化视图28916.3 实体化视图刷新28916.3.1 自动刷新28916.3.2 手动刷新28916.4 查询重写28916.4.1 查询重写的概念28916.4.2 查询重写示例28916.4.3 启用、禁用和控制查询重写28916.5 dbms_mview程序包289324cop
15、yright 2005-2008 uplookingtechnology co., ltd. page tel:17 400-700-0056 li-194 oracle 性能调优mail: http:/序 言 你所管理的oracle系统性能是否“极好”,你的回答可能是“否”。你的系统在正常运行的情况下是否能降低资源的消耗?性能问题是oracle系统都会碰到的问题,如何使有限的计算机系统资源为更多的用户服务?如何保证用户的响应速度和服务质量?这些问题都属于数据库性能优化的范畴。为了保证o
16、racle数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略。优化策略一般包括服务器操作系统参数调整、数据库参数调整、网络性能调整、应用程序sql语句分析及设计等几个方面,其中应用程序的分析与设计是在信息系统开发之前完成的。 分析评价oracle数据库性能主要有数据库吞吐量、数据库用户响应时间两项指标。数据库用户响应时间又可以分为系统服务时间和用户等待时间两项,即: 数据库用户响应时间=系统服务时间用户等待时间 因此,获得满意的用户响应时间有两个途径:一是减少系统服务时间,即提高数据库的吞吐量;二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率。 数据库性能优化
17、包括如下几个部分: 1. 调整数据结构的设计 程序员需要考虑是否使用oracle数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。 2. 调整应用程序结构设计 这一部分也是在开发信息系统之前完成的。程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的client/server两层体系结构,还是使用browser/web/database的三层体系结构。不同的应用程序体系结构要求的数据库资源是不同的。3. 调整数据库sql语句 应用程序的执行最终将归结为数据库中的sql语句执行,因此sql语句的执行效率最终决定了oracle数据库的性能。 oracle公司推荐使用oracl
18、e语句优化器(oracle optimizer)和行锁管理器(row-level manager)来调整优化sql语句。 4. 调整服务器内存分配 内存分配是在信息系统运行过程中优化配置的。数据库管理员根据数据库的运行状况不仅可以调整数据库系统全局区(sga区)的数据缓冲区、日志缓冲区和共享池的大小,而且还可以调整程序全局区(pga区)的大小。 5. 调整硬盘i/o 这一步是在信息系统开发之前完成的。数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间i/o 负载均衡。 6. 调整操作系统参数 例如:运行在unix操作系统上的 oracle数据库,可以调整unix数据缓冲
19、区的大小、每个进程所能使用的内存大小等参数。 实际上,上述数据库优化措施之间是相互联系的。oracle 数据库性能恶化的表现基本上都是用户响应时间比较长,需要用户长时间的等待。而性能恶化的原因却是多种多样的,有时是多个因素共同造成了性能恶化的结果,这就需要数据库管理员有比较全面的计算机知识,能够敏感地察觉到影响数据库性能的主要原因所在。另外,良好的数据库管理工具对于优化数据库性能也是很重要的。oracle数据库常用的数据库性能优化工具有: 1. oracle数据库在线数据字典 oracle在线数据字典能够反映出oracle的动态运行情况,对于调整数据库性能是很有帮助的。 2. 操作系统工具 例
20、如使用unix操作系统的vmstat、 iostat等命令可以查看到系统级内存和硬盘i/o的使用情况,这些工具能够帮助管理员弄清楚系统瓶颈出现在什么地方。3. sql语言跟踪工具(sql trace facility) sql语言跟踪工具可以记录sql语句的执行情况,管理员可以使用虚拟表来调整实例,并使用sql语句跟踪文件调整应用程序性能。sql语言跟踪工具将结果输出成一个操作系统的文件,管理员可以使用tkprof工具查看这些文件。 4. oracle enterprise manager(oem) 这是一个图形的用户管理界面,用户可以使用它方便地进行数据库管理而不必记住复杂的oracle数据
21、库管理的命令。5. explain plansql语言优化命令 使用这个命令可以帮助程序员写出高效的sql语言。信息系统的类型不同,需要关注的数据库参数也是不同的。数据库管理员需要根据自己的信息系统类型来着重考虑不同的数据库参数。在线事务处理信息系统(oltp)、联机分析处理 (olap)、数据仓库系统(data warehousing)的特点是什么?分别需要关注什么参数?数据库是否需要下面的调整:是否采用btree索引或者bitmap索引? 是否采用并行sql查询以提高查询效率? 是否采用pl/sql函数编写存储过程? 有必要的话,需要建立并行数据库以提高数据库的查询效率。 本文将从不同的角
22、度对上面的内容进行解释和例证。第 一 章性能优化概述published by arrangement with the original publisher, uplooking(beijing),inc.this manual should not appear to be a photocopy. if you find that uplooking teaching material are being photocopied without permission. please mail or call17.th
23、ank you!第1章 性能优化概述您将学习:1. 列出数据库优化进程相关角色2. 描述在不同的开发阶段进行的优化之间的相关性3. 描述服务器协议4. 列出优化目标5. 列出最常见的优化问题6. 描述开发和生产过程中的优化7. 描述性能与安全性的平衡第 一 节 优化相关的问题 谁进行优化 为什么优化(列出优化目标) 优化到什么程度published by arrangement with the original publisher, uplooking(beijing),inc.this manual should not appear to be a photocopy. if you f
24、ind that uplooking teaching material are being photocopied without permission. please mail or call17.thank you!1.1 优化相关的问题1.1.1 谁进行优化与oracle 系统有关的任何人(系统体系结构设计者、设计人员、开发人员和数据库管理员)在工作中都应该考虑性能和优化问题。如果出现问题,通常首先由系统管理员(dba)尝试解决问题。1.1.2 为什么要优化优化的最好方法是设计系统和应用程序,性能提高主要是通过优
25、化应用获得的。如果满足下列条件,则您很少会遇到性能问题:硬件满足用户的需求、oracle 数据库是经过认真设计的、应用程序开发人员编写了高效的sql程序。如果在早期做了错误的决策,或者用户现在对系统的要求比原来提高了。则应该认真考虑进一步优化以提高性能。应该定期监控数据库,以发现影响性能的瓶颈。1.1.3 优化到什么程度主要有两种优化形式:速度:缩短响应时间。高吞吐量可伸缩性:在同等的响应时间或者吞吐量的基础上提高负载。本文将讨论找出解决瓶颈的方法。用户应该可以看到优化的结果,执行任务所需要的时间减少,并发会话的数量增加。如果已经出现问题,或者dba希望防止出现问题,就可以执行优化。例如要监控
26、的项目包括:临界表增长,用户执行的语句的更改,以及i/o在设备之间的分配。本课讨论确定等待和瓶颈所在位置的方法,以及如何解决这些问题。第 二 节 优化阶段 应用程序设计和编码 数据库配置 添加新的应用程序 进行过程中的优化published by arrangement with the original publisher, uplooking(beijing),inc.this manual should not appear to be a photocopy. if you find that uplooking teaching material are being photocop
27、ied without permission. please mail or call17.thank you!1.2 优化阶段1.2.1 优化到什么程度只要可能,就应该从这一阶段开始优化。完善的设计可以避免很多优化问题。例如,尽管将表完全规格划通常是减少冗余的最好办法,但是这会导致大量的表联接。取消表的规格化,可以大大提高应用程序的性能。1.2.2 数据库配置 即使在快速磁盘上,对其性能监视也是非常重要的。您应该规划好数据配置,使恢复时间更短、数据访问更快。1.2.3 添加新的应用程序向现有系统中添加新的应用程序时,工
28、作量会发生变化。工作量发生任何主要变化时,都应该同时进行性能监视。1.2.4 运行过程中的优化建议对生产数据库使用此方法。它可以查找瓶颈,并加以解决。使用工具找出性能问题。通过检查此数据,可以对造成瓶颈的原因进行假设,再根据假设开发并实施解决方案。然后对数据库进行测试负载,以确定性能问题是否得到了解决。第 三 节 优化目标 减少或消除等待 访问尽可能少的块 在内存中高速缓存块 响应时间 吞吐量 负载 恢复时间published by arrangement with the original publisher, uplooking(beijing),inc.this manual shoul
29、d not appear to be a photocopy. if you find that uplooking teaching material are being photocopied without permission. please mail or call17.thank you!1.3 优化目标1.3.1 优化的目标oracle数据库优化的主要目标时,确保用户能够尽快获得对其语句的响应。由于“尽快”并不是一个准确的术语,因此必须通过某种方式来量化时间衡量。通常以响应时间、吞吐量、负载或恢复时间来衡量
30、优化目标。可以根据服务级别来确定优化目标。例如,进程a必须在指定时间内完成,或者每秒必须处理一定数量的事务。1.3.2 可衡量的优化的目标在优化oracle数据库环境时,dba应该建立可衡量的优化目标。否则,很难确定何时已经进行了足够的优化。检查等待和瓶颈是判断是否可以提高性能的好方法。响应时间是指用户在发出请求后多长时间收到数据,或者指更新报表或生成报表所用的时间。数据库可用性也是一个不错的优化目标。备份和恢复会影响可用性,关闭和启动数据库例程来优化参数也会影响可用性。内存利用率也是一种有效的衡量标准,因为过多的页面调度和交换会影响数据库和操作系统的性能。内存使用情况也会影响数据库命中百分比
31、。例程命中百分比提供了一个很好的基准,根据它可以确定性能随时间提高还是降低。第 四 节 常见优化问题 会话管理不佳(通常与中间件相关) 游标管理不佳(通常由程序员的错误引起) 关系设计不佳(通常由过分规格化引起) 常见优化问题的后果published by arrangement with the original publisher, uplooking(beijing),inc.this manual should not appear to be a photocopy. if you find that uplooking teaching material are being pho
32、tocopied without permission. please mail or call17.thank you!1.4 常见优化问题1.4.1 会话管理不佳其中一种情况是,web页面频繁登陆并注销数据库,这种情况会耗费最终用户的时间来进行登陆。1.4.2 游标管理不佳 例如,一个应用程序在where子句中没有使用赋值变量。1.4.3 关系设计不佳 例如,在将错误的列收集到表中时,可能需要许多表联接,才能生成本可以从一个表就可以获得的输出。1.4.4 常见优化问题的后果会话管理不佳:使可伸缩性具有无法超越的限制,
33、使系统比正常速度慢一两个数量级。游标管理不佳:使可伸缩性更加有限关系设计不佳:执行不必要的表联接,通常是由于试图使用过高的关系规格化等级造成的(即第n泛式)。第 五 节 生产过程中的优化步骤 使用工具定位瓶颈 确定瓶颈产生的原因 解决瓶颈的起因 检查该瓶颈是否已得到解决published by arrangement with the original publisher, uplooking(beijing),inc.this manual should not appear to be a photocopy. if you find that uplooking teaching mat
34、erial are being photocopied without permission. please mail or call17.thank you!1.5 生产过程中的优化步骤生产系统的优化方法是在用户遇到问题之前解决问题:1、使用statspack、oracle enterprise manager等工具来定位瓶颈或潜在的瓶颈。2、瓶颈通常以等待事件的形式出现。请确定等待事件的原因。3、解决等待事件的起因。这可能需要更改系统全局区的成员大小。4、重新运行应用程序,然后使用第1步中所使用的工具,检查所做的更改
35、是否对系统产生了积极的效果。5、如果未达到目标,请重复这个过程。按照这个结构进行优化的原因是,重复在开发系统使用的相同优化方法不过是浪费时间。当系统需要全面检查时,使用开发系统方法才更加有利。第 二 章诊断与调优工具published by arrangement with the original publisher, uplooking(beijing),inc.this manual should not appear to be a photocopy. if you find that uplooking teaching material are being photocopied
36、 without permission. please mail or call17.thank you!第2章 诊断与调优工具您将学习:1. 告警日志2. sql 跟踪3. 资料视图4. 等待事件5. statspack第 一 节 告警日志告警日志主要内容: 告警日志中包括各种提示性日志信息和各种警告、错误信息在告警日志中快速查找信息: 利用文本编辑器的搜索功能published by arrangement with the original publisher, uplooking(beijing),inc.thi
37、s manual should not appear to be a photocopy. if you find that uplooking teaching material are being photocopied without permission. please mail or call17.thank you!2.1 告警日志2.1.1 告警日志主要内容告警日志中包括各种提示性日志信息和各种警告、错误信息。它的名字是alert_数据库sid.log,它的位置用初始化参数background_dump_d
38、est设置,我们可以如下显示它位置:sql show parameter background_dump_destname type value- - -background_dump_dest string e:oracleproduct10.2.0admin jjonebdump下列重要的信息被记录在告警日志中:1内部错误,也就是ora-600错误。这些错误通常是由bug或一些oracle的内部原因引起的,所以被称为内部错误。2坏块错误ora-1578或ora-1498。也就是数据文件产生了坏块。3影响数据库结构的操作或参数。例如create database创建数据库,startup或s
39、hutdown开始或关闭数据库,归档操作或恢复操作等。例如,当你创建表空间后,你可以在告警日志中找到如下两部分信息:tue jul 22 12:15:38 2008create tablespace exam1 datafile e:oracleexam1_1.dbaf size 5m extent management local autoallocate blocksize 4ktue jul 22 12:15:39 2008completed: create tablespace exam1 datafile e:oracleexam1_1.dbaf size 5m extent man
40、agement local autoallocate blocksize 4k第一部分信息说明了开始创建表空间信息的时间以及你的创建表空间的语句。第二部分说明了oracle完成此语句的时间。4在实例启动时的非缺省参数。我们可以在告警日志中找到类似下面的信息,这些就是非缺省参数:system parameters with non-default values: processes = 150 sga_target = 448790528 control_files = e:oracleproduct10.2.0oradatajjonecontrol01.ctl, e:oracleproduct
41、10.2.0oradatajjonecontrol02.ctl, e:oracleproduct10.2.0oradatajjonecontrol03.ctl db_block_size = 8192 compatible = .0 db_file_multiblock_read_count= 16 db_recovery_file_dest = e:oracleproduct10.2.0/flash_recovery_area db_recovery_file_dest_size= 104857600 undo_management = auto undo_tablespac
42、e = undotbs1 remote_login_passwordfile= exclusive db_domain = dispatchers = (protocol=tcp) (service=jjonexdb) job_queue_processes = 10 audit_file_dest = e:oracleproduct10.2.0adminjjoneadump background_dump_dest = e:oracleproduct10.2.0adminjjonebdump user_dump_dest = e:oracleproduct10.2.0adminjjoneud
43、ump core_dump_dest = e:oracleproduct10.2.0adminjjonecdump db_name = jjone open_cursors = 300pga_aggregate_target = 1488977925其他oracle认为需要让dba知道的警告和错误信息。oracle尽量用最浅白的语言来描述这些警告和错误信息,只要略懂英语,看明白这些信息的意义是很简单的。如:mon oct 13 20:03:27 2008arc0: archiving not possible: no primary destinationsarc0: failed to ar
44、chive thread 1 sequence 1636 (4)这段信息的第一行说明了在2008年10月13日的20点03分27秒(那天是星期一),arc0进程在归档序列号为1636的日志文件时,发生了错误。错误的原因是no primary destinations,也就是归档目的地发生了错误。注意,告警日志中的每项信息都以时间开头。oracle这样做的目的是让你更容易了解相关的操作发生在什么时候,这是在调查错误时很重要的一点。6检查点信息。当log_checkpoints_to_alert参数设为真时,检查点信息会被记入告警日志。如果你想详细观察检查点的行为,将此参数设为真是很有帮助的。如果
45、你并不打算详细了解检查点的行为,保留此参数为假就行。因为当此参数为真时,这加重了oracle对告警日志写操作的负担。总的来说,dba应该经常查看告警日志,有的公司甚至用各种编程语言开发软件,定时搜索告警日志,发现警告、错误即时的通报dba。我们再强调一下,告警日志中大部分的信息,只要略懂英文就能看懂。2.1.2 在告警日志中快速查找信息是告警日志中快速查找感兴趣的信息是非常简单的操作,告警日志是普通的文本型文件,我们可以用任何文本编辑软件打开它。在文本编辑软件中,都提供有搜索功能,我们只需要利用搜索功能查找感兴趣的关键字即可。比如,想在告警日志中查找最后一次启动数据库的时间,我们可以从告警日志
46、尾向前搜索关键字“start”。很快我们就可以找到类似下面的信息:wed oct 15 09:47:54 2008starting oracle instance (normal)这说明最后一次启动数据库是在2008年10月15日星期三的9点47分54秒。第 二 节 sql跟踪 sql_trace的作用 10046事件 跟踪sql的执行可以进一步了解sql语句执行时的细节,这是进行精细化调化的最佳手段,也是了解、分析oracle运行原理的入门方式published by arrangement with the original publisher, uplooking(beijing),in
47、c.this manual should not appear to be a photocopy. if you find that uplooking teaching material are being photocopied without permission. please mail or call17.thank you!2.2 sql 跟踪2.2.1 sql_trace的作用使sql_trace设置sql跟踪非常简单,sql_trace是一个参数,只需要在会话层将它设置为true,就开启了sql跟踪,o
48、racle将会把sql语句的执行过程记录到跟踪文件中。通过查阅跟踪文件,将利于你了解sql语句的执行过程,这将帮助你调优、排故sql语句。跟踪文件的位置在user_dump_dest初始化参数中,如下方法可以显示出跟踪文件的位置:sql show parameter user_dump_destname type value- - -user_dump_dest string e:oracleproduct10.2.0admin jjoneudump在我的主机中,跟踪文件在e:oracleproduct10.2.0adminjjoneudump中。下面我们练习一次sql跟踪。步1:启用跟踪:s
49、ql alter session set sql_trace=true;会话已更改。注意要在会话层设置此参数,不要在实例层设置。步2:执行需要跟踪的sql语句sql select * from ui1 where id=1; id name- - 1 1我们在此随变执行个什么语句都行,oracle会将此语句的执行过程记录到跟踪文件中。步3:关闭跟踪sql alter session set sql_trace=false;会话已更改。注意,在执行完想要跟踪的语句后,要马上关闭跟踪。以免不必要的语句的执行过程也被记录到跟踪文件中。这将影响阅读跟踪文件的结果。步4:查阅跟踪文件:到e:oracleproduct10.2.0adminjjoneudump目录中,找到日期最新的文件,它就是oracle刚刚生成的跟踪文件。在本例中,它的名字是“jjone_ora_3600.trc”。打开它查看,此时它的信息还不是太容易理解,oracle为了帮助我们阅读sql的跟踪文件,专门提供了一个tk
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高新技术企业认定培训资料
- Virtuoso软件的使用技巧
- 2025年智能交通行业车联网技术发展可行性研究报告
- 电力改革对国网员工薪资的影响研究报告论文
- 2025年汽车道路救援研究报告
- 小规模办学实施方案
- 儿童消费者特点和行为研究报告
- 可行性研究报告 南京
- 2025年it行业深度研究报告
- 《均线系统综合运用》课件
- 2026年黄山市公共交通有限公司招聘3名笔试备考题库及答案详解
- 2026年海南高考化学试卷真题及答案详解(精校打印版)
- 深静脉血栓形成诊断和治疗指南(第四版2026)
- 2026年证券公司营业部总经理竞聘管理能力面试问题含答案
- T∕CNLIC 0218-2025 乳源酵母菌、乳酸菌发酵型含乳饮料 奶啤
- 服装订货会策划方法
- 上海市奉贤区2025-2026学年高三上学期一模语文试卷(含答案)
- 中国心血管健康与疾病报告(2024年)要点解读课件
- 乳胶漆基本知识培训课件
- 生命教育主体班会课件
- 《旅游管理专业介绍》课件
评论
0/150
提交评论