Oracle:是否有跟踪查询的工具,例如用于SQL Server的Profiler?
我使用sql server,但是必须使用Oracle DB迁移到应用程序。
为了跟踪我的应用程序查询,在Sql Server中,我使用了出色的Profiler工具。 Oracle有什么等效的东西吗?
解决方案
Oracle与其他数据库一起分析给定查询以创建执行计划。该计划是检索数据的最有效方法。
Oracle提供了" explain plan"语句,该语句分析查询但不运行查询,而是填充一个我们可以查询的特殊表(计划表)。
语法(简单版本,还有其他选项,例如用特殊的ID标记计划表中的行,或者使用其他计划表)是:
explain plan for <sql query>
该数据的分析还有其他问题,或者我们需要进一步研究。
这是一个Oracle文档,解释了如何跟踪SQL查询,包括几个工具(SQL Trace和tkprof)
关联
我们可以使用Oracle Enterprise Manager来监视活动会话,以及正在执行的查询,其执行计划,锁,一些统计信息甚至是较长任务的进度条。
请参阅:http://download.oracle.com/docs/cd/B10501_01/em.920/a96674/db_admin.htm#1013955
转到"实例"->"会话",并观看每个会话的" SQL"选项卡。
还有其他方法。企业管理器只是用漂亮的颜色放置特殊视图中已经可用的内容,例如此处记录的内容:
http://www.oracle.com/pls/db92/db92.catalog_views?remark=homepage
并且,当然,我们也可以使用Explain PLAN FOR,TRACE工具以及其他许多工具化方式。在企业管理器中,有一些报告涉及最昂贵的SQL查询。我们还可以搜索保留在缓存中的最近查询。
试试这个(它也是免费的):
http://www.aboves.com/Statement_Tracer_for_Oracle.exe
尝试使用PL / SQL Developer,它对分析器具有良好的用户友好GUI界面。试试看,这真是太好了。在Oracle数据库上工作时,我会誓言使用此工具。
http://www.allroundautomations.com/plsqldev.html?gclid=CM6pz8e04p0CFQjyDAodNXqPDw
就像我刚刚对一个最近的问题投了重复一样,并指出了这个方向。 。 。
SQL * Plus中的更多内容SET AUTOTRACE ON将为执行的每个语句提供解释计划和统计信息。
TOAD还允许客户端分析。
这两种方法的缺点是它们只告诉我们该语句的执行计划,而不能告诉优化器如何到达该计划的,因为我们将需要较低级别的服务器端跟踪。
另一个重要的要了解的是Statspack快照,它们是查看整个数据库性能的好方法。说明计划等擅长查找瓶颈的单个SQL语句。 Statspack擅长于识别问题所在,即一个具有良好执行计划的简单语句在一分钟内被调用一百万次。
有一个商业工具FlexTracer,可用于跟踪Oracle SQL查询