欢迎来到天天文库
浏览记录
ID:14125930
大小:69.50 KB
页数:36页
时间:2018-07-26
《oracle 学习笔记---性能优化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、oracle学习笔记---性能优化oracle学习笔记---性能优化个人分类:ORACLE性能调整ORACLE学习笔记--性能优化(一)1.查询正在执行语句的执行计划(也就是实际语句执行计划)select*fromv$sql_planwherehash_value=(selectsql_hash_valuefromv$sessionwheresid=1111);其中id和parent_id表示了执行数的结构,数值最大的为最先执行比如IDPARENT_ID-------------0102132435463则执行计划树为01236452.如何设置自动跟踪用syst
2、em登录执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建计划表执行$ORACLE_HOME/sqlplus/admin/plustrce.sql创建plustrace角色如果想计划表让每个用户都能使用,则SQL>createpublicsynonymplan_tableforplan_table;SQL>grantallonplan_tabletopublic;如果想让自动跟踪的角色让每个用户都能使用,则SQL>grantplustracetopublic;通过如下语句开启/停止跟踪SETAUTOTRACEON
3、OFF
4、ONEX
5、PLAIN
6、ONSTATISTICS
7、TRACEONLY
8、TRACEONLYEXPLAIN3.如何跟踪自己的会话或者是别人的会话跟踪自己的会话很简单Altersessionsetsql_tracetrue
9、falseOrExecdbms_session.set_sql_trace(TRUE);如果跟踪别人的会话,需要调用一个包execdbms_system.set_sql_trace_in_session(sid,serial#,true
10、false)跟踪的信息在user_dump_dest目录下可以找到或通过如下脚本获得文件名称(适用于Win环境,如果是uni
11、x需要做一定修改)SELECTp1.value
12、
13、''
14、
15、p2.value
16、
17、'_ora_'
18、
19、p.spid
20、
21、'.ora'filenameFROMv$processp,v$sessions,v$parameterp1,v$parameterp2WHEREp1.name='user_dump_dest'ANDp2.name='db_name'ANDp.addr=s.paddrANDs.audsid=USERENV('SESSIONID')最后,可以通过Tkprof来解析跟踪文件,如Tkprof原文件目标文件sys=n4.怎么设置整个数据库系统跟踪其实文档上的a
22、ltersystemsetsql_trace=true是不成功的,但是可以通过设置事件来完成这个工作,作用相等altersystemsetevents'10046tracenamecontextforever,level1';如果关闭跟踪,可以用如下语句altersystemsetevents'10046tracenamecontextoff';其中的level1与上面的8都是跟踪级别level1:跟踪SQL语句,等于sql_trace=truelevel4:包括变量的详细信息level8:包括等待事件level12:包括绑定变量与等待事件5.怎么样根据OS进程
23、快速获得DB进程信息与正在执行的语句有些时候,我们在OS上操作,象TOP之后我们得到的OS进程,怎么快速根据OS信息获得DB信息呢?我们可以编写如下脚本:$morewhoit.sh#!/bin/shsqlplus/nolog100,cascade=>TRUE);dbms_stats.gather_table_stats(User,TableName,degree=>4,cascade=>true);这是对命令与工具包的一些总结<1>、对于分区表,建议使用DBMS_STATS,而不是使用Analyze语句。 a)可以并行进行,对多个用户,多个Table b)可以得
24、到整个分区表的数据和单个分区的数据。 c)可以在不同级别上ComputeStatistics:单个分区,子分区,全表,所有分区 d)可以倒出统计信息 e)可以用户自动收集统计信息<2>、DBMS_STATS的缺点 a)不能ValidateStructure b)不能收集CHAINEDROWS,不能收集CLUSTERTABLE的信息,这两个仍旧需要使用Analyze语句。 c)DBMS_STATS默认不对索引进行Analyze,因为默认Cascade是False,需要手工指定为True<3>、对于oracle9里面的ExternalTable,Analyze不能使
25、用,只能使用DBMS_S
此文档下载收益归作者所有