|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。oracle
收拾:Fenng
日期:24-Oct-2004
出处:http://www.dbanotes.net
版本:0.9
DBMS_SUPPORT是Oracle供应的一个软件包。供外部撑持职员利用以更无效地跟踪SQL。这个包没有正式的申明文件,默许情形下,体系不安装这个包。假如必要利用的话,需举行独自设置。在你的$ORACLE_HOME/rdbms/admin/目次下应当存在dbmssupp.sql,prvtsupp.plb这两个文件。
SQL>connect/assysdbaConnected.SQL>@$ORACLE_HOME/rdbms/admin/dbmssupp.sqlPackagecreated.Packagebodycreated.SQL>
假如要其他用户也能够利用这个包,能够思索提交以下受权操纵(PUBLIC能够交换为详细的用户)并创立同义词:
SQL>GRANTEXECUTEONdbms_supportTOPUBLIC;Grantsucceeded.SQL>CREATEPUBLICSYNONYMdbms_supportFORdbms_support;
DBMS_SUPPORT的布局其实不庞大:
SQL>descDBMS_SUPPORTFUNCTIONMYSIDRETURNSNUMBERFUNCTIONPACKAGE_VERSIONRETURNSVARCHAR2PROCEDURESTART_TRACEArgumentNameTypeIn/OutDefault?-------------------------------------------------------------------WAITSBOOLEANINDEFAULTBINDSBOOLEANINDEFAULTPROCEDURESTART_TRACE_IN_SESSIONArgumentNameTypeIn/OutDefault?-------------------------------------------------------------------SIDNUMBERINSERIALNUMBERINWAITSBOOLEANINDEFAULTBINDSBOOLEANINDEFAULTPROCEDURESTOP_TRACEPROCEDURESTOP_TRACE_IN_SESSIONArgumentNameTypeIn/OutDefault?-------------------------------------------------------------------SIDNUMBERINSERIALNUMBERINSQL>
个中经由过程MYSID能够取得以后会话(Session)的SID(和serial#):
SQL>SELECTSYS.dbms_support.mysidFROMDUAL;MYSID----------25SQL>SQL>SELECTSID,serial#FROMv$sessionWHERESID=dbms_support.mysid;SIDSERIAL#--------------------254328SQL>
经由过程package_version能够失掉软件包所能撑持的最低的PL/SQL的版本:
SQL>SELECTdbms_support.package_version2FROMdual;PACKAGE_VERSION--------------------------------------------------------------------DBMS_SUPPORTVersion1.0(17-Aug-1998)-RequiresOracle7.2-8.0.5
怎样激活SQL跟踪?START_TRACE有两个参数:WAITS和BINDS。个中WAITS默许为TRUE,BINDS默许为FALSE。假如复杂的提交:
SQL>EXECUTEdbms_support.start_trace;
则默许激活10046事务,level1。也即同等于:
SQL>ALTERSESSIONSETEVENTS10046tracenamecontextforever,level1;
假如提交:
SQL>EXECUTEdbms_support.start_trace(BINDS=>true);
则激活10046事务,level4。同等于:
SQL>ALTERSESSIONSETEVENTS10046tracenamecontextforever,level4;
假如提交:
SQL>EXECUTEdbms_support.start_trace(WAITS=>true);
则激活10046事务,level8。同等于:
SQL>ALTERSESSIONSETEVENTS10046tracenamecontextforever,level8;
中断跟踪提交:
SQL>EXECUTEdbms_support.stop_trace;
start_trace_in_session有四个参数,可参考下面DESCRIBE的输入。假如要跟踪其他用户的会话,就要用上它了。以下面的输入举例(必要SID和SERIAL#):
SQL>EXECUTEdbms_support.start_trace_in_session(25,4328,waits->true,binds=>true,);
下面这条命令和以下语句起到一样功效:
SQL>EXECUTEdbms_system.set_ev(25,4328,10046,4,8);
中断跟踪提交:
SQL>EXECUTEdbms_support.stop_trace_in_session(25,4328);
其他成绩
这个包从OracleRDBMS7.2入手下手就有供应。但在某些版本/平台上大概不存在。
注:各个Level的基础注释:
Level0=NostatisticsgeneratedLevel1=standardtraceoutputincludingparsing,executesandfetchesplusmore.Level2=Sameaslevel1.Level4=Sameaslevel1butincludesbindinformationLevel8=Sameaslevel1butincludeswaitsinformationLevel12=Sameaslevel1butincludesbindsandwaits
参考信息
Metalink-http://metalink.oracle.com(Note62294.1)
本文作者Fenng,某美资公司DBA,专业工夫混迹于各数据库相干的手艺论坛且乐此不疲。今朝存眷怎样使用ORACLE数据库无效地构建企业使用。对Oracletuning、troubleshooting有一点研讨。
团体手艺站点:http://www.dbanotes.net/。能够经由过程电子邮件dbanotes@gmail.com接洽到他。原文出处http://www.dbanotes.net/Oracle/Oracle_DBMS_SUPPORT.htm
回想页
AllArticles(byFenng)arelicensedunderaCreativeCommonsLicense.
Iwouldwelcomeanyfeedback.Pleasesendquestions,commentsorcorrectionstodbanotes@gmail.com一个相关的问题是第三方支持的资格问题,尽管直接来自厂商的支持和服务可以一定程度上减缓这个问题,但是,对于有的企业来说,通过强有力的本地化支持显然更有吸引力。 |
|