Oracle动态性能表

上传人:优*** 文档编号:57733779 上传时间:2022-02-24 格式:DOC 页数:23 大小:98.50KB
收藏 版权申诉 举报 下载
Oracle动态性能表_第1页
第1页 / 共23页
Oracle动态性能表_第2页
第2页 / 共23页
Oracle动态性能表_第3页
第3页 / 共23页
资源描述:

《Oracle动态性能表》由会员分享,可在线阅读,更多相关《Oracle动态性能表(23页珍藏版)》请在装配图网上搜索。

1、真诚为您提供优质参考资料,若有不当之处,请指正。Oracle动态性能表(1)-V$SQLAREAV$SQLAREA中的信息列HASH_VALUE:SQL语句的Hash值。ADDRESS:SQL语句在SGA中的地址。这两列被用于鉴别SQL语句,有时,两条不同的语句可能hash值相同。这时候,必须连同ADDRESS一同使用来确认SQL语句。PARSING_USER_ID:为语句解析第一条CURSOR的用户VERSION_COUNT:语句cursor的数量KEPT_VERSIONS:SHARABLE_MEMORY:cursor使用的共享内存总数PERSISTENT_MEMORY:cursor使用的常

2、驻内存总数RUNTIME_MEMORY:cursor使用的运行时内存总数。SQL_TEXT:SQL语句的文本(最大只能保存该语句的前1000个字符)。MODULE,ACTION:使用了DBMS_APPLICATION_INFO时session解析第一条cursor时的信息V$SQLAREA中的其它常用列SORTS: 语句的排序数CPU_TIME: 语句被解析和执行的CPU时间ELAPSED_TIME: 语句被解析和执行的共用时间PARSE_CALLS: 语句的解析调用(软、硬)次数EXECUTIONS: 语句的执行次数INVALIDATIONS: 语句的cursor失效次数LOADS: 语句载

3、入(载出)数量ROWS_PROCESSED: 语句返回的列总数V$SQLAREA中的连接列Column View Joined Column(s)HASH_VALUE, ADDRESS V$SESSION SQL_HASH_VALUE, SQL_ADDRESSHASH_VALUE, ADDRESS V$SQLTEXT, V$SQL, V$OPEN_CURSOR HASH_VALUE, ADDRESSSQL_TEXT V$DB_OBJECT_CACHE NAME示例:1.查看消耗资源最多的SQL:SELECT hash_value, executions, buffer_gets, disk_r

4、eads, parse_callsFROM V$SQLAREAWHERE buffer_gets 10000000 OR disk_reads 1000000ORDER BY buffer_gets + 100 * disk_reads DESC;2.查看某条SQL语句的资源消耗:SELECT hash_value, buffer_gets, disk_reads, executions, parse_callsFROM V$SQLAREAWHERE hash_Value = 228801498 AND address = hextoraw(CBD8E4B0);Oracle动态性能表-(2)-

5、V$SQLTEXT本视图包括Shared pool中SQL语句的完整文本,一条SQL语句可能分成多个块被保存于多个记录内。V$SQLTEXT中的常用列HASH_VALUE:SQL语句的Hash值ADDRESS:sql语句在SGA中的地址SQL_TEXT:SQL文本。PIECE:SQL语句块的序号V$SQLTEXT中的连接列Column View Joined Column(s)HASH_VALUE, ADDRESS V$SQL, V$SESSION HASH_VALUE, ADDRESSHASH_VALUE. ADDRESS V$SESSION SQL_HASH_VALUE, SQL_ADDR

6、ESS示例:已知hash_value:3111103299,查询sql语句:select * from v$sqltextwhere hash_value=3111103299order by pieceOracle动态性能表-(3)-V$SYSSTAT按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。类似于v$sesstat,该视图存储下列的统计信息:1.事件发生次数的统计(如:user commits)2.数据产生,存取或者操作的total列(如:redo size)3.如果TIMED_STA

7、TISTICS值为true,则统计花费在执行操作上的总时间(如:CPU used by this session)v$sysstat视图常用列介绍:l STATISTIC#: 标识l NAME: 统计项名称l VALUE: 资源使用量该视图还有一列class-统计类别但极少会被使用,各类信息如下:1 代表事例活动2 代表Redo buffer活动4 代表锁8 代表数据缓冲活动16 代表OS活动32 代表并行活动64 代表表访问128 代表调试信息注意:Statistic#的值在不同版本中各不相同,使用时要用Name做为查询条件而不要以statistic#的值做为条件。使用v$sysstat中的

8、数据该视图中数据常被用于监控系统性能。如buffer cache命中率、软解析率等都可从该视图数据计算得出。该视图中的数据也被用于监控系统资源使用情况,以及系统资源利用率的变化。正因如此多的性能数据,检查某区间内系统资源使用情况可以这样做,在一个时间段开始时创建一个视图数据快照,结束时再创建一个,二者之间各统计项值的不同(end value - begin value)即是这一时间段内的资源消耗情况。这是oracle工具的常用方法,诸如Statspack以及BSTAT/ESTAT都是如此。为了对比某个区间段的数据,源数据可以被格式化(每次事务,每次执行,每秒钟或每次登陆),格式化后数据更容易从

9、两者中鉴别出差异。这类的对比在升级前,升级后或仅仅想看看一段时间内用户数量增长或数据增加如何影响资源使用方面更加实用。你也可以使用v$sysstat数据通过查询v$system_event视图来检查资源消耗和资源回收。V$SYSSTAT中的常用统计V$SYSSTAT中包含多个统计项,这部分介绍了一些关键的v$sysstat统计项,在调优方面相当有用。下列按字母先后排序:数据库使用状态的一些关键指标:l CPU used by this session:所有session的cpu占用量,不包括后台进程。这项统计的单位是百分之x秒.完全调用一次不超过10msl db block changes:那

10、部分造成SGA中数据块变化的insert,update或delete操作数 这项统计可以大概看出整体数据库状态。在各项事务级别,这项统计指出脏缓存比率。l execute count:执行的sql语句数量(包括递归sql)l logons current:当前连接到实例的Sessions。如果当前有两个快照则取平均值。l logons cumulative:自实例启动后的总登陆次数。l parse count (hard):在shared pool中解析调用的未命中次数。当sql语句执行并且该语句不在shared pool或虽然在shared pool但因为两者存在部分差异而不能被使用时产生硬

11、解析。如果一条sql语句原文与当前存在的相同,但查询表不同则认为它们是两条不同语句,则硬解析即会发生。硬解析会带来cpu和资源使用的高昂开销,因为它需要oracle在shared pool中重新分配内存,然后再确定执行计划,最终语句才会被执行。l parse count (total):解析调用总数,包括软解析和硬解析。当session执行了一条sql语句,该语句已经存在于shared pool并且可以被使用则产生软解析。当语句被使用(即共享) 所有数据相关的现有sql语句(如最优化的执行计划)必须同样适用于当前的声明。这两项统计可被用于计算软解析命中率。l parse time cpu:总c

12、pu解析时间(单位:10ms)。包括硬解析和软解析。l parse time elapsed:完成解析调用的总时间花费。l physical reads:OS blocks read数。包括插入到SGA缓存区的物理读以及PGA中的直读这项统计并非i/o请求数。l physical writes:从SGA缓存区被DBWR写到磁盘的数据块以及PGA进程直写的数据块数量。l redo log space requests:在redo logs中服务进程的等待空间,表示需要更长时间的log switch。l redo size:redo发生的总次数(以及因此写入log buffer),以byte为单位

13、。这项统计显示出update活跃性。l session logical reads:逻辑读请求数。l sorts (memory) and sorts (disk):sorts(memory)是适于在SORT_AREA_SIZE(因此不需要在磁盘进行排序)的排序操作的数量。sorts(disk)则是由于排序所需空间太大,SORT_AREA_SIZE不能满足而不得不在磁盘进行排序操作的数量。这两项统计通常用于计算in-memory sort ratio。l sorts (rows): 列排序总数。这项统计可被sorts (total)统计项除尽以确定每次排序的列。该项可指出数据卷和应用特征。l

14、table fetch by rowid:使用ROWID返回的总列数(由于索引访问或sql语句中使用了where rowid=&rowid而产生)l table scans (rows gotten):全表扫描中读取的总列数l table scans (blocks gotten):全表扫描中读取的总块数,不包括那些split的列。l user commits + user rollbacks:系统事务起用次数。当需要计算其它统计中每项事务比率时该项可以被做为除数。例如,计算事务中逻辑读,可以使用下列公式:session logical reads / (user commits + user

15、 rollbacks)。注:SQL语句的解析有软解析soft parse与硬解析hard parse之说,以下是5个步骤:1:语法是否合法(sql写法)2:语义是否合法(权限,对象是否存在)3:检查该sql是否在公享池中存在- 如果存在,直接跳过4和5,运行sql. 此时算soft parse4:选择执行计划5:产生执行计划- 如果5个步骤全做,这就叫hard parse.注意物理I/Ooracle报告物理读也许并未导致实际物理磁盘I/O操作。这完全有可能因为多数操作系统都有缓存文件,可能是那些块在被读取。块也可能存于磁盘或控制级缓存以再次避免实际I/O。Oracle报告有物理读也许仅仅表示被

16、请求的块并不在缓存中。由V$SYSSTAT得出实例效率比(Instance Efficiency Ratios)下列是些典型的instance efficiency ratios 由v$sysstat数据计算得来,每项比率值应该尽可能接近1:l Buffer cache hit ratio:该项显示buffer cache大小是否合适。公式:1-(physical reads-physical reads direct-physical reads direct (lob) / session logical reads)执行:select1-(a.value-b.value-c.value)

17、/d.value) from v$sysstat a,v$sysstat b,v$sysstat c,v$sysstat d where a.name=physical readsand b.name=physical reads directand c.name=physical reads direct (lob)and d.name=session logical reads;l Soft parse ratio:这项将显示系统是否有太多硬解析。该值将会与原始统计数据对比以确保精确。例如,软解析率仅为0.2则表示硬解析率太高。不过,如果总解析量(parse count total)偏低,

18、这项值可以被忽略。公式:1 - ( parse count (hard) / parse count (total) )执行:select1-(a.value/b.value) from v$sysstat a,v$sysstat b Wherea.name=parse count (hard)and b.name=parse count (total);l In-memory sort ratio:该项显示内存中完成的排序所占比例。最理想状态下,在OLTP系统中,大部分排序不仅小并且能够完全在内存里完成排序。公式:sorts (memory) / ( sorts (memory) + sor

19、ts (disk) )执行:select a.value/(b.value+c.value)from v$sysstat a,v$sysstat b,v$sysstat cwherea.name=sorts (memory)and b.name=sorts (memory)andc.name=sorts (disk);l Parse to execute ratio:在生产环境,最理想状态是一条sql语句一次解析多数运行。公式:1 - (parse count/execute count)执行:select1-(a.value/b.value)from v$sysstat a,v$syssta

20、t bwhere a.name=parse count (total)and b.name=execute count;l Parse CPU to total CPU ratio:该项显示总的CPU花费在执行及解析上的比率。如果这项比率较低,说明系统执行了太多的解析。公式:1 - (parse time cpu / CPU used by this session)执行:select1-(a.value/b.value)from v$sysstat a,v$sysstat bwhere a.name=parse time cpuand b.name=CPU used by this sess

21、ion;l Parse time CPU to parse time elapsed:通常,该项显示锁竞争比率。这项比率计算是否时间花费在解析分配给CPU进行周期运算(即生产工作)。解析时间花费不在CPU周期运算通常表示由于锁竞争导致了时间花费公式:parse time cpu / parse time elapsed执行:select a.value/b.valuefrom v$sysstat a,v$sysstat bwhere a.name=parse time cpuand b.name=parse time elapsed;从V$SYSSTAT获取负载间档(Load Profile)

22、数据负载间档是监控系统吞吐量和负载变化的重要部分,该部分提供如下每秒和每个事务的统计信息:logons cumulative, parse count (total), parse count (hard), executes, physical reads, physical writes, block changes, and redo size.被格式化的数据可检查rates是否过高,或用于对比其它基线数据设置为识别system profile在期间如何变化。例如,计算每个事务中block changes可用如下公式:db block changes / ( user commits +

23、 user rollbacks )执行:select a.value/(b.value+c.value)from v$sysstat a,v$sysstat b,v$sysstat cwhere a.name=db block changesand b.name=user commitsandc.name=user rollbacks;其它计算统计以衡量负载方式,如下:l Blocks changed for each read:这项显示出block changes在block reads中的比例。它将指出是否系统主要用于只读访问或是主要进行诸多数据操作(如:inserts/updates/d

24、eletes)公式:db block changes / session logical reads执行:select a.value/b.valuefrom v$sysstat a,v$sysstat bwhere a.name=db block changesand b.name=session logical reads ;l Rows for each sort:公式:sorts (rows) / ( sorts (memory) + sorts (disk) )执行:select a.value/(b.value+c.value)from v$sysstat a,v$sysstat

25、b,v$sysstat cwhere a.name=sorts (rows)and b.name=sorts (memory)andc.name=sorts (disk);Oracle动态性能表-(4)-V$SESSTAT按照OracleOnlineBook中的描述,v$sesstat存储session从login到logout的详细资源使用统计。类似于v$sysstat,该视图存储下列类别的统计:l 事件发生次数的统计,如用户提交数。l 数据产生,存取或者操作的total列(如:redo size)l 执行操作所花费的时间累积,例如session CPU占用(如果TIMED_STATISTI

26、CS值为true)注意:如果初始参数STATISTICS_LEVEL被设置为TYPICAL或ALL,时间统计被数据库自动收集如果STATISTICS_LEVEL被设置为BASIC,你必须设置TIMED_STATISTICS值为TRUE以打开收集功能。如果你已设置了DB_CACHE_ADVICE,TIMED_STATISTICS或TIMED_OS_STATISTICS,或在初始参数文件或使用ALTER_SYSTEM或ALTER SESSION,那么你所设定的值的值将覆盖STATISTICS_LEVEL的值。v$sysstat和v$sesstat差别如下:n v$sesstat只保存session

27、数据,而v$sysstat则保存所有sessions的累积值。n v$sesstat只是暂存数据,session退出后数据即清空。v$sysstat则是累积的,只有当实例被shutdown才会清空。n v$sesstat不包括统计项名称,如果要获得统计项名称则必须与v$sysstat或v$statname连接查询获得。v$sesstat可被用于找出如下类型session:n 高资源占用n 高平均资源占用比(登陆后资源使用率)n 默认资源占用比(两快照之间)在V$SESSTAT中使用统计多数v$sesstat中的统计参考是v$sysstat描述的子集,包括session logical read

28、s, CPU used by this session, db block changes, redo size, physical writes, parse count (hard), parse count (total), sorts (memory), and sorts (disk).V$SESSTAT常用列说明n SID:session唯一IDn STATISTIC#:资源唯一IDn VALUE:资源使用示例1:下列找出当前session中最高的logical和Physical I/O比率.下列SQL语句显示了所有连接到数据库的session逻辑、物理读比率(每秒)。logica

29、l和physical I/O比率是通过自登陆后的时间消耗计算得出。对于sessions连接到数据库这种长周期操作而言也许不够精确,不过做个示例却足够了。先获得session逻辑读和物理读统计项的STATISTIC#值:SELECTname, statistic# FROM V$STATNAME WHEREnameIN (session logical reads,physical reads) ;NAME STATISTIC#- -session logical reads 9physical reads 40通过上面获得的STATISTIC#值执行下列语句:SELECT ses.sid ,

30、DECODE(ses.action,NULL,online,batch) User , MAX(DECODE(sta.statistic#,9,sta.value,0) /greatest(3600*24*(sysdate-ses.logon_time),1) Log IO/s , MAX(DECODE(sta.statistic#,40,sta.value,0) /greatest(3600*24*(sysdate-ses.logon_time),1) Phy IO/s , 60*24*(sysdate-ses.logon_time) MinutesFROM V$SESSION ses ,

31、V$SESSTAT staWHERE ses.status = ACTIVEAND sta.sid = ses.sidAND sta.statistic# IN (9,40)GROUP BY ses.sid, ses.action, ses.logon_timeORDER BY SUM( DECODE(sta.statistic#,40,100*sta.value,sta.value) ) / greatest(3600*24*(sysdate-ses.logon_time),1) DESC;SID User Log IO/s Phy IO/s Minutes- - - - -1951 bat

32、ch 291 257.3 1470 online 6,161 62.9 0730 batch 7,568 43.2 1972153 online 1,482 98.9 102386 batch 7,620 35.6 351815 batch 7,503 35.5 261965 online 4,879 42.9 191668 online 4,318 44.5 11142 online 955 69.2 351855 batch 573 70.5 81971 online 1,138 56.6 11323 online 3,263 32.4 51479 batch 2,857 35.1 342

33、1 online 1,322 46.8 152405 online 258 50.4 8示例2:又例如通过v$sesstat和v$statname连接查询某个SID各项信息。select a.*,b.namefrom v$sesstat a,v$statname b where a.sid=10and a.statistic#=b.statistic#;(2)-v$mystat 本视图是v$sesstat的一个子集,返回当前session的统计项。当通过触发器审计session资源使用,可以使用v$mystat来捕获资源使用,这将比直接扫描v$sesstat的列要节省资源的多。Oracle动态

34、性能表-(5)-V$SQL,V$SQL_PLAN(1) v$sql 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1)。如果有多个cursor(子游标)存在,在V$SQLAREA为所有cursor提供集合信息。例1:这里介绍以下child cursoruser A: select * from tbluser B: select * from tbl大家认为这两条语句是不是一样的啊,可能会有很多人会说是一样的,但我告诉你不一定,那为什么呢?这个tblA看起来是一样的,但是不一定哦,一个是A用户的, 一个是B用户的,这时他们的执行计划分析代码差别可能就大了哦,改

35、下写法大家就明白了:select * from A.tblselect * from B.tbl在个别cursor上,v$sql可被使用。该视图包含cursor级别资料。当试图定位session或用户以分析cursor时被使用。PLAN_HASH_VALUE列存储的是数值表示的cursor执行计划。可被用来对比执行计划。PLAN_HASH_VALUE让你不必一行一行对比即可轻松鉴别两条执行计划是否相同。V$SQL中的列说明:l SQL_TEXT:SQL文本的前1000个字符l SHARABLE_MEM:占用的共享内存大小(单位:byte)l PERSISTENT_MEM:生命期内的固定内存大小

36、(单位:byte)l RUNTIME_MEM:执行期内的固定内存大小l SORTS:完成的排序数l LOADED_VERSIONS:显示上下文堆是否载入,1是0否l OPEN_VERSIONS:显示子游标是否被锁,1是0否l USERS_OPENING:执行语句的用户数l FETCHES:SQL语句的fetch数。l EXECUTIONS:自它被载入缓存库后的执行次数l USERS_EXECUTING:执行语句的用户数l LOADS:对象被载入过的次数l FIRST_LOAD_TIME:初次载入时间l INVALIDATIONS:无效的次数l PARSE_CALLS:解析调用次数l DISK_

37、READS:读磁盘次数l BUFFER_GETS:读缓存区次数l ROWS_PROCESSED:解析SQL语句返回的总列数l COMMAND_TYPE:命令类型代号l OPTIMIZER_MODE:SQL语句的优化器模型l OPTIMIZER_COST:优化器给出的本次查询成本l PARSING_USER_ID:第一个解析的用户IDl PARSING_SCHEMA_ID:第一个解析的计划IDl KEPT_VERSIONS:指出是否当前子游标被使用DBMS_SHARED_POOL包标记为常驻内存l ADDRESS:当前游标父句柄地址l TYPE_CHK_HEAP:当前堆类型检查说明l HASH_

38、VALUE:缓存库中父语句的Hash值l PLAN_HASH_VALUE:数值表示的执行计划。l CHILD_NUMBER:子游标数量l MODULE:在第一次解析这条语句是通过调用DBMS_APPLICATION_INFO.SET_MODULE设置的模块名称。l ACTION:在第一次解析这条语句是通过调用DBMS_APPLICATION_INFO.SET_ACTION设置的动作名称。l SERIALIZABLE_ABORTS:事务未能序列化次数l OUTLINE_CATEGORY:如果outline在解释cursor期间被应用,那么本列将显示出outline各类,否则本列为空l CPU_T

39、IME:解析/执行/取得等CPU使用时间(单位,毫秒)l ELAPSED_TIME:解析/执行/取得等消耗时间(单位,毫秒)l OUTLINE_SID:outline session标识l CHILD_ADDRESS:子游标地址l SQLTYPE:指出当前语句使用的SQL语言版本l REMOTE:指出是否游标是一个远程映象(Y/N)l OBJECT_STATUS:对象状态(VALID or INVALID)l IS_OBSOLETE:当子游标的数量太多的时候,指出游标是否被废弃(Y/N)(2)-V$SQL_PLAN 本视图提供了一种方式检查那些执行过的并且仍在缓存中的cursor的执行计划。通

40、常,本视图提供的信息与打印出的EXPLAIN PLAN非常相似,不过,EXPLAIN PLAN显示的是理论上的计划,并不一定在执行的时候就会被使用,但V$SQL_PLAN中包括的是实际被使用的计划。获自EXPLAIN PLAN语句的执行计划跟具体执行的计划可以不同,因为cursor可能被不同的session参数值编译(如,HASH_AREA_SIZE)。V$SQL_PLAN中数据可以:l 确认当前的执行计划l 鉴别创建表索引效果l 寻找cursor包括的存取路径(例如,全表查询或范围索引查询)l 鉴别索引的选择是否最优l 决定是否最优化选择的详细执行计划(如,nested loops join

41、)如开发者所愿。本视图同时也可被用于当成一种关键机制在计划对比中。计划对比通常用于下列各项发生改变时:l 删除和新建索引l 在数据库对象上执行分析语句l 修改初始参数值l 从rule-based切换至cost-based优化方式l 升级应用程序或数据库到新版本之后如果之前的计划仍然在(例如,从V$SQL_PLAN选择出记录并保存到oracle表中供参考),那么就有可能去鉴别一条SQL语句在执行计划改变后性能方面有什么变化。注意:Oracle公司强烈推荐你使用DBMS_STATS包而非ANALYZE收集优化统计。该包可以让你平行地搜集统计项,收集分区对象(partitioned objects)

42、的全集统计,并且通过其它方式更好的调整你的统计收集方式。此处,cost-based优化器将最终使用被DBMS_STATS收集的统计项。浏览Oracle9i Supplied PL/SQL包和类型参考以获得关于此包的更多信息。不过,你必须使用ANALYZE语句而非DBMS_STATS进行统计收集,不涉及cost-based优化器,就像:?使用VALIDATE或LIST CHAINED ROWS子句?在freelist blocks上收集信息。V$SQL_PLAN中的常用列:除了一些新加列,本视图几乎包括所有的PLAN_TABLE列,那些同样存在于PLAN_TABLE中的列拥有相同的值:l ADD

43、RESS:当前cursor父句柄位置l HASH_VALUE:在library cache中父语句的HASH值。ADDRESS和HASH_VALUE这两列可以被用于连接v$sqlarea查询 cursor-specific 信息。l CHILD_NUMBER:使用这个执行计划的子cursor数列ADDRESS,HASH_VALUE以及CHILD_NUMBER可被用于连接v$sql查询子cursor信息。l OPERATION: 在各步骤执行内部操作的名称,例如:TABLE ACCESSl OPTIONS: 描述列OPERATION在操作上的变种,例如:FULLl OBJECT_NODE: 用于

44、访问对象的数据库链接database link 的名称对于使用并行执行的本地查询该列能够描述操作中输出的次序。l OBJECT#: 表或索引对象数量l OBJECT_OWNER: 对于包含有表或索引的架构schema 给出其所有者的名称l OBJECT_NAME: 表或索引名l OPTIMIZER: 执行计划中首列的默认优化模式;例如,CHOOSE。比如业务是个存储数据库,它将告知是否对象是最优化的。l ID: 在执行计划中分派到每一步的序号。l PARENT_ID: 对ID 步骤的输出进行操作的下一个执行步骤的ID。l DEPTH: 业务树深度(或级)。l POSITION: 对于具有相同P

45、ARENT_ID 的操作其相应的处理次序。l COST: cost-based方式优化的操作开销的评估,如果语句使用rule-based方式,本列将为空。l CARDINALITY: 根据cost-based方式操作所访问的行数的评估。l BYTES: 根据cost-based方式操作产生的字节的评估,。l OTHER_TAG: 其它列的内容说明。l PARTITION_START: 范围存取分区中的开始分区。l PARTITION_STOP: 范围存取分区中的停止分区。l PARTITION_ID: 计算PARTITION_START和PARTITION_STOP这对列值的步数l OTHER

46、: 其它信息即执行步骤细节,供用户参考。l DISTRIBUTION: 为了并行查询,存储用于从生产服务器到消费服务器分配列的方法l CPU_COST: 根据cost-based方式CPU操作开销的评估。如果语句使用rule-based方式,本列为空。l IO_COST: 根据cost-based方式I/O操作开销的评估。如果语句使用rule-based方式,本列为空。l TEMP_SPACE: cost-based方式操作(sort or hash-join)的临时空间占用评估。如果语句使用rule-based方式,本列为空。l ACCESS_PREDICATES: 指明以便在存取结构中定位

47、列,例如,在范围索引查询中的开始或者结束位置。l FILTER_PREDICATES: 在生成数据之前即指明过滤列。CONNECT BY操作产生DEPTH列替换LEVEL伪列,有时被用于在SQL脚本中帮助indent PLAN_TABLE数据V$SQL_PLAN中的连接列列ADDRESS,HASH_VALUE和CHILD_NUMBER被用于连接V$SQL或V$SQLAREA来获取cursor-specific信息,例如,BUFFER_GET,或连接V$SQLTEXT获取完整的SQL语句。Column View Joined Column(s) ADDRESS, HASH_VALUE V$SQL

48、AREA ADDRESS, HASH_VALUEADDRESS,HASH_VALUE,CHILD_NUMBER V$SQL ADDRESS,HASH_VALUE,CHILD_NUMBERADDRESS, HASH_VALUE V$SQLTEXT ADDRESS, HASH_VALUE确认SQL语句的优化计划下列语句显示一条指定SQL语句的执行计划。查看一条SQL语句的执行计划是调整优化SQL语句的第一步。这条被查询到执行计划的SQL语句是通过语句的HASH_VALUE和ADDRESS列识别。分两步执行:1.SELECT sql_text, address, hash_value FROM v$

49、sqlWHERE sql_text like %TAG%;SQL_TEXT ADDRESS HASH_VALUE- - - 82157784 12248224692.SELECT operation, options, object_name, cost FROM v$sql_planWHERE address = 82157784 AND hash_value = 1224822469;OPERATION OPTIONS OBJECT_NAME COST- - - -SELECT STATEMENT 5SORT AGGREGATE HASH JOIN 5 TABLE ACCESS FULL

50、DEPARTMENTS 2 TABLE ACCESS FULL EMPLOYEES 2Oracle动态性能表-(6)-V$SQLTEXT,V$SQLAREAV$SQLTEXT 本视图包括Shared pool中SQL语句的完整文本,一条SQL语句可能分成多个块被保存于多个记录内。注:V$SQLAREA只包括头1000个字符。V$SQLTEXT中的常用列l HASH_VALUE:SQL语句的Hash值l ADDRESS:sql语句在SGA中的地址l SQL_TEXT:SQL文本。l PIECE:SQL语句块的序号V$SQLTEXT中的连接列Column View Joined Column(s)

51、 HASH_VALUE, ADDRESS V$SQL, V$SESSION HASH_VALUE, ADDRESSHASH_VALUE. ADDRESS V$SESSION SQL_HASH_VALUE, SQL_ADDRESS示例:已知hash_value:3111103299,查询sql语句:select * from v$sqltext where hash_value=3111103299orderby piece V$SQLAREA本视图持续跟踪所有shared pool中的共享cursor,在shared pool中的每一条SQL语句都对应一列。本视图在分析SQL语句资源使用方面非

52、常重要。V$SQLAREA中的信息列l HASH_VALUE:SQL语句的Hash值。l ADDRESS:SQL语句在SGA中的地址。这两列被用于鉴别SQL语句,有时,两条不同的语句可能hash值相同。这时候,必须连同ADDRESS一同使用来确认SQL语句。l PARSING_USER_ID:为语句解析第一条CURSOR的用户l VERSION_COUNT:语句cursor的数量l KEPT_VERSIONS:l SHARABLE_MEMORY:cursor使用的共享内存总数l PERSISTENT_MEMORY:cursor使用的常驻内存总数l RUNTIME_MEMORY:cursor使用

53、的运行时内存总数。l SQL_TEXT:SQL语句的文本(最大只能保存该语句的前1000个字符)。l MODULE,ACTION:使用了DBMS_APPLICATION_INFO时session解析第一条cursor时的信息V$SQLAREA中的其它常用列l SORTS: 语句的排序数l CPU_TIME: 语句被解析和执行的CPU时间l ELAPSED_TIME: 语句被解析和执行的共用时间l PARSE_CALLS: 语句的解析调用(软、硬)次数l EXECUTIONS: 语句的执行次数l INVALIDATIONS: 语句的cursor失效次数l LOADS: 语句载入(载出)数量l R

54、OWS_PROCESSED: 语句返回的列总数V$SQLAREA中的连接列Column View Joined Column(s)HASH_VALUE, ADDRESS V$SESSION SQL_HASH_VALUE, SQL_ADDRESSHASH_VALUE, ADDRESS V$SQLTEXT, V$SQL, V$OPEN_CURSOR HASH_VALUE, ADDRESSSQL_TEXT V$DB_OBJECT_CACHE NAME示例:1.查看消耗资源最多的SQL:SELECT hash_value, executions, buffer_gets, disk_reads, parse_callsFROM V$SQLAREAWHERE buffer_gets 10000000OR disk_reads 1000000ORDERBY buffer_gets + 100 * disk_reads DESC;2.查看某条SQL语句的资源消耗:SELECT hash_value, buffer_gets, disk_reads, executions, parse_callsFROM V$SQLAREAWHERE hash_Value = 228801498AND addres

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!