韩城建设公司网站,wordpress建站全教程,环保行业网站开发,网站的ppt方案怎么做在进行数据库调优时#xff0c;代码的性能瓶颈至关重要#xff0c;Oracle数据库提供的DBMS_PROFILER包可以特别方便的发现瓶颈的所在之处。DBMS_PROFILER在使用之前可能需要安装#xff0c;具体安装步骤如下#xff1a;◆1#xff1a;执行$ORACLE_HOME/rdbms/admin/proflo…在进行数据库调优时代码的性能瓶颈至关重要Oracle数据库提供的DBMS_PROFILER包可以特别方便的发现瓶颈的所在之处。DBMS_PROFILER在使用之前可能需要安装具体安装步骤如下◆1执行$ORACLE_HOME/rdbms/admin/profload.sql◆2创建一个用于存放跟踪信息的schemaCREATE USER profiler IDENTIFIED BY profiler DEFAULT TABLESPACE users QUOTA UNLIMITED ON users;GRANT connect TO profiler;CREATE PUBLIC SYNONYM plsql_profiler_runs FOR profiler.plsql_profiler_runs;CREATE PUBLIC SYNONYM plsql_profiler_units FOR profiler.plsql_profiler_units;CREATE PUBLIC SYNONYM plsql_profiler_data FOR profiler.plsql_profiler_data;CREATE PUBLIC SYNONYM plsql_profiler_runnumber FOR profiler.plsql_profiler_runnumber;◆3:使用刚刚创建的profiler用户执行如下脚本或代码$ORACLE_HOME/rdbms/admin/proftab.sqlGRANT SELECT ON plsql_profiler_runnumber TO PUBLIC;GRANT SELECT, INSERT, UPDATE, DELETE ON plsql_profiler_data TO PUBLIC;GRANT SELECT, INSERT, UPDATE, DELETE ON plsql_profiler_units TO PUBLIC;GRANT SELECT, INSERT, UPDATE, DELETE ON plsql_profiler_runs TO PUBLIC;安装成功后测试执行BEGINDBMS_PROFILER.START_PROFILER(123);FOR I IN 1 .. 1000 LOOPINSERT INTO A VALUES (I || );END LOOP;COMMIT;DBMS_PROFILER.STOP_PROFILER();END;执行后使用下面的代码检查SELECT C.LINE#, C.TOTAL_OCCUR, C.TOTAL_TIME, C.MIN_TIME, C.MAX_TIMEFROM PLSQL_PROFILER_RUNS A, PLSQL_PROFILER_UNITS B, PLSQL_PROFILER_DATA CWHERE A.RUN_COMMENT 123AND B.UNIT_OWNER AND A.RUNID B.RUNIDAND A.RUNID C.RUNIDAND B.UNIT_NUMBER C.UNIT_NUMBER注意:每次DBMS_PROFILER.START_PROFILER的输入参数需要改变否则便不能分别运行后的运行结果了。除此之外B.UNIT_OWNER ‘’中的约束值如果是在package里面需要是包名如果是procedure则是procedure的名字。实在在不知道什么名字时可以在PLSQL_PROFILER_UNITS中查一下。此外运行结果可以通过PLSQL Developer来观察需要新建一个test,在profiler中可以查看它的运行结果示例如下: