在SQL Developer的自动跟踪中,tkprof和v $ statname的等效列是什么?

时间:2018-12-28 08:22:10

标签: oracle oracle-sqldeveloper database-administration sqlperformance sql-tuning

当我获得TKPROF输出时,我可以看到解析,执行,获取,磁盘等。

call   count      cpu    elapsed     disk    query current    rows
---- -------  -------  --------- -------- -------- -------  ------
Parse      1     0.16      0.29         3       13       0       0
Execute    1     0.00      0.00         0        0       0       0
Fetch      1     0.03      0.26         2        2       4      14 
Misses in library cache during parse: 1 

但是获取TKPROF的速度不如从SQL Developer获取自动跟踪的速度快。

那么,TKPROF输出中是否有与这些列相对应的等效列?它可以是下面的V $ STATNAME区域中输出的执行计划。如果是,那是哪个?因为当我检查时,我看到几个不同的解析。而且在v $ statname中没有看到类似fetch的内容。

如果有等效项,TKPROF和AUTOTRACE的值是否相等或不同?

谢谢。

1 个答案:

答案 0 :(得分:2)

在Oracle中有很多不同的方法来获取执行计划和计划性能信息-尽管它们使用来自等待界面和内部工具的类似信息,但要始终获得来自不同工具的数字的精确匹配并不总是那么容易。通常这不是什么大问题,因为所有结果都提供相似的结果。只是为了澄清一些要点:

  • tkprof是用于渲染由SQL跟踪生成的跟踪文件的工具(可以以不同的方式创建):因此,您必须创建跟踪文件,然后进行渲染;并且这可能比使用其他内置策略更为复杂。在正方面,SQL跟踪为执行中的所有详细步骤提供了资源和计时信息。
    • autotrace使用wait接口中的内部统计信息,但是您必须考虑访存大小和数据传输的影响才能获得相同的信息,这将创建应用程序访问权限。使用自动跟踪功能,您只会获得有关重新使用的资源以及完成整个操作的时间的信息。
    • 如果拥有必要的许可证,则可以使用SQL Monitor获得有关执行步骤及其对完整操作性能的影响的非常详细的信息。
    • 最后,您可以使用提示(gather_plan_statistics)或相应的会话参数(statistics_level)创建具有行源统计信息的执行计划。要收集此类计划,您必须使用合适的格式选项调用dbms_xplan.display_cursor。

Chris Saxon在https://blogs.oracle.com/sql/how-to-create-an-execution-plan中提供了有关这些选项的有用概述。