zoukankan      html  css  js  c++  java
  • Oracle 性能分析与诊断|跟踪诊断&优化SQL 语句

    Oracle 性能分析与诊断|跟踪诊断&优化SQL 语句

     

    SQL 语句的执行效率对于数据库性能的影响非常重大,在性能测试过程中,需要查找和定位可能存在性能瓶颈的SQL 语句。

    PL/SQL Developer 是一个Oracle 的PL/SQL 开发工具,同时具备Oracle 的一些管理功能,可利用它来跟踪客户端向Oracle 服务器提交的所有SQL 语句,方法是选择Session→SQL Trace命令,如图8.19 所示。

    也可以指定跟踪某个Session 的SQL 语句,如图8.20 所示。

    如果不用PL/SQL Developer 这类工具,也可以通过修改Oracle 全局参数sql_trace,来产生Trace 文件,之后再分析Trace 文件来分析提交到Oracle 的SQL 语句。如果想针对某个Session进行SQL 语句的跟踪,则可以采用以下办法(以下操作需要在SYS 用户下进行)。

    (1)首先使用以下语句从Oracle 的v$session 表查出所有跟Oracle 连接的客户端程序的进程:

    select SID, SERIAL#, USERNAME,OSUSER,MACHINE,TERMINAL,PROGRAM from v$session

    (2)然后利用DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION 包来跟踪特定的进程向Oracle 提交的SQL 语句。

    例如,下面语句为SID 为13,SERIAL#为96 的进程执行SQL 语句的跟踪功能:

    execute dbms_system.set_sql_trace_in_session(13,96,TRUE);

    (3)如果要停止跟踪,则提交以下语句:

    execute dbms_system.set_sql_trace_in_session(13,96,FALSE);

    然后在利用Oracle 的tkprof 工具对记录下来的SQL 跟踪文件进行分析,如图8.21 所示。

    另外,也可以利用前面讲过的Spotlight 这个工具进行SQL 跟踪,在Spotlight 中跟踪指定Session 的SQL 语句,并查看执行计划,如图8.22 所示。

    还可以利用SQL Tuning 的调优建议功能对SQL 语句进行分析,SQL Tunning 将自动查找更优的可替代SQL 语句,如图8.23 所示。

    图8.23 中,SQL Tunning 把原来使用Having 进行条件过滤的SQL 语句改写为使用Where进行条件过滤,这样的SQL 语句执行效率更高。

  • 相关阅读:
    CTR预估(3)--正则,交叉验证、特征提取、变量分类
    CTR预估(1)--CTR基础
    svm支持向量机系列(4) --软间隔支持向量机
    机器为什么可以学习(4)---错误和噪声
    svm支持向量机系列(3) -- kernel支持向量机
    svm支持向量机系列(2) -- 对偶支持向量机
    svm支持向量机系列(1) -- 线性支持向量机
    机器为什么可以学习(3)----vc维
    机器为什么可以学习(2)---一般化理论
    GitLab 数据库
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/14205091.html
Copyright © 2011-2022 走看看