oracle 查询执行的sql

如何查询执行的sql

在日常的开发过程中,我们经常需要查询执行过的sql语句以便进行调试和优化。这篇文章将介绍几种查询执行过的sql语句的方法。

1. 使用Oracle SQL Developer

Oracle SQL Developer是一款功能强大的IDE,提供了许多实用的工具和功能。其中一个非常有用的功能是查询分析器,通过该功能可以查看执行过的sql语句和相应的参数值。

使用方法如下:

打开Oracle SQL Developer,连接到相应的数据库实例。

点击菜单栏上的“查询”选项,再点击“打开查询窗口”。

在查询窗口中输入以下sql语句:

SELECT SQL_TEXT, LAST_LOAD_TIME, EXECUTIONS, ELAPSED_TIME, CPU_TIME, DISK_READS, BUFFER_GETS, ROWS_PROCESSED

FROM V$SQL

WHERE (LAST_LOAD_TIME IS NOT NULL)

AND (SQL_TEXT LIKE 'SELECT%' OR SQL_TEXT LIKE 'UPDATE%' OR SQL_TEXT LIKE 'DELETE%')

ORDER BY LAST_LOAD_TIME DESC;

    点击“执行查询”按钮。

    在结果窗口中查看执行过的sql语句和相应的执行情况。

    通过该方法,我们可以查看到执行过的sql语句、执行时间、占用CPU时间、磁盘读取、Buffer Gets等信息,有助于我们定位性能问题。

    2. 使用Oracle AWR报告

    Oracle AWR(自动工作负载存储库)是一个非常有用的性能调优工具。其中一个功能是生成性能报告,通过该报告可以查看执行过的sql语句和相应的性能情况。

    使用方法如下:

    登录到数据库实例。

    在SQL Plus中执行以下命令:

    SELECT output FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(SYSDATE - 7, SYSDATE));

    该命令将生成一个AWR报告,包含了大量的性能信息,包括SQL统计信息。

    我们可以通过搜索“SQL Statistics”来查找执行过的sql语句,其中包括执行时间、占用CPU时间、磁盘读取、Buffer Gets等信息。

    3. 使用Oracle Trace文件

    Oracle Trace文件记录了数据库实例执行的所有SQL语句以及相应的性能信息。通过分析Trace文件,我们可以查看执行过的所有SQL语句以及相应的执行情况。

    使用方法如下:

    打开sqlnet.ora文件(通常位于$ORACLE_HOME/network/admin目录下)。

    在文件中添加以下行并保存:

    DIAG_ADR_ENABLED = ON

    TRACE_LEVEL_SERVER = 16

    TRACE_FILE_SERVER = SERVER

    TRACE_DIRECTORY_SERVER = /tmp

    上述配置将Trace文件输出到/tmp目录中。

    3. 重启数据库服务。

    4. 执行SQL语句。

    5. 执行以下命令查找Trace文件:

    ls -l /tmp/*SERVER*.trc

    6. 执行以下命令分析Trace文件:

    tkprof /tmp/<Trace文件名>.trc /tmp/output.txt

    该命令将分析Trace文件,并将结果输出到/tmp/output.txt文件中。

    我们可以通过搜索“SQL ID”来查找执行过的sql语句,其中包括执行时间、占用CPU时间、磁盘读取、Buffer Gets等信息。

    总结

    以上介绍的三种方法都可以查询执行过的sql语句以及相应的性能情况。其中,Oracle SQL Developer和AWR报告比较方便,适用于日常开发和性能调优。而Trace文件对于一些特殊情况,比如其他方法无法定位的性能问题,提供了非常有效的手段。

上一篇:oracle 查询效率

下一篇:oracle 查询库名

数据库标签