在日常的运维与优化工作中,经常需要分析某条语句或者某个存储过程执行是不是正常的,存储过程中哪些SQL语句或者循环开销较大。这个时候,一个ORACLE自带的工具-profiler就十分有用了。profiler是一个Oracle自带的存储过程性能分析工具,从很早的版本就存在了,不过可能很多DBA都不知道这个工具的存在,因为这个工具在Oracle官方的手册里并没有提及。老白在十多年前写的《oracle 优化日记》里提到了这个工具,并提供了一个利用这个工具解决《最长的一天》的案例。在那个故事里,用户的系统莫名其妙的很慢,数据库的负载并不高。最后老白怀疑到是不是应用有问题。而应用是一个套装软件,开发商在英国,所有的PL/SQL存储过程都是加密的,现场没法分析代码。于是老白就使用PROFILER把耗时最多的代码行找到,通过和英国那边的开发团队沟通,开发团队很快定位了问题,从而帮助客户解决了问题。Profiler的使用十分简单,在$ORACLE_HOME/rdbms/admin下面有几个Profiler相关的脚本:
要安装Profiler,首先在你的用户SCHEMA执行proftab创建相关的表,然后使用SYSDBA执行profload创建相关的存储过程。安装就结束了。十分简单。如果你要跟踪分析某个存储过程,也十分简单。首先编写一个PL/SQL BLOCK,把你的存储过程跟踪调试一下:
plsql停止正在执行的sql_PL/SQL与SQL分析利器Profiler
最新推荐文章于 2024-05-09 16:53:24 发布