search
HomeDatabaseMysql TutorialSQL TRACE和TKPROF的使用步骤

1.设置参数文件 设置三个参数timed_statistics、user_dump_dest、max_dump_file_size。 timed_staticstices 用于启动或禁止对定

1.设置参数文件 timed_staticstices

用于启动或禁止对定时统计信息(如CPU时间、占用时间),以及动态性能表中多种统计信息的收集功能

SQL>alter session set timed_statistics = true;

SQL>alter system set timed_statistics = true;

max_dump_file_size

当实例层启用SQL TRACE的时候,在每次请求服务器的时候,都将在跟踪文件中产生一个文本行,这些文件的最大尺寸受限于初始化参数的设置。默认为500(blocks)。若里面的数据被截断则增大SIZE。若为UNLIMITED则意味着没有上限。

user_dump_dest

设置跟踪文件的存储位置。默认为admin/用户/udump;

SQL>alter system set user_dump_dest = 'newdir';

2.启动SQL TRACE实用工具

对会话启动关闭SQL TRACE

SQL>alter session set sql_trace = true;

SQL>alter session set sql_trace = false;

SQL>exec SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION =(SID,SERIAL#,TRUE);

SQL>exec SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION =(SID,SERIAL#,,FALSE);

对用户实例启动关闭SQL TRACE

SQL>alter system set sql_trace = true;

SQL>alter system set sql_trace = false;

3.使用tkprof格式化trace文件     

Usage

tkprof inputfile outputfile [optional | parameters ] 

(tkprof tracefile outputfile [explain= ] [table= ] [print= ] [insert= ] [sys= ] [sort= ])

例:1.tkprof tracefile outfile [explain=user/password] [options...];

例:2.tkprof uat_ora_14936.trc trace.txt sort=(prsdsk,exedsk,fchdsk) print=10 explain=apps/apps table=apps.temp_plan_table_a insert=storea.sql sys=no

tkprof参数和选项

  • explain=user/password 执行explain命令将结果放在SQL trace的输出文件中  
  • table=schema.table 指定tkprof处理sql trace文件时临时表的模式名和表名  
  • insert=scriptfile 创建一个文件名为scriptfile的文件,包含了tkprof存放的输出sql语句  
  • sys=[yes/no] 确定系统是否列出由sys用户产生或重调的sql语句  
  • print=number 将仅生成排序后的第一条sql语句的输出结果  
  • record=recordfile 这个选项创建一个名为recorderfile的文件,包含了所有重调用的sql语句  
  • sort=sort_option 按照指定的方法对sql trace的输出文件进行降序排序  
  • sort_option 选项  
  •    prscnt  按解析次数排序  
  •    prscpu  按解析所花cpu时间排序  
  •    prsela  按解析所经历的时间排序  
  •    prsdsk  按解析时物理的读操作的次数排序  
  •    prsqry  解析时以一致模式读取数据块的次数排序  
  •    prscu   按解析时以当前读取数据块的次数进行排序  
  •    execnt  按执行次数排序  
  •    execpu  按执行时花的cpu时间排序  
  •    exeela  按执行所经历的时间排序  
  •    exedsk  按执行时物理读操作的次数排序  
  •    exeqry  按执行时以一致模式读取数据块的次数排序  
  •    execu   按执行时以当前模式读取数据块的次数排序  
  •    exerow  按执行时处理的记录的次数进行排序  
  •    exemis  按执行时库缓冲区的错误排序  
  •    fchcnt  按返回数据的次数进行排序  
  •    fchcpu  按返回数据cpu所花时间排序  
  •    fchela  按返回数据所经历的时间排序  
  •    fchdsk  按返回数据时的物理读操作的次数排序  
  •    fchqry  按返回数据时一致模式读取数据块的次数排序  
  •    fchcu   按返回数据时当前模式读取数据块的次数排序  
  •    fchrow  按返回数据时处理的数据数量排序  
  • 4.举例:

    trace其他session

    查询某用户的session的SID及SERIAL#

    $sqlplus / as sysdba

    SQL>select s.USERNAME,s.SID,s.SERIAL#,s.COMMAND from v$session s

    where s.USERNAME='ETOH' ; --注意用户名用大写

    SQL>exec dbms_system.SET_SQL_TRACE_IN_SESSION(12,73,true);

    等待被跟踪session活动一段时间

    SQL>exec dbms_system.SET_SQL_TRACE_IN_SESSION(12,73,false);

    --查询生成的.trc文件号

    SQL>SELECT d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||

          p.spid || '.trc' trace_file_name

     from (select p.spid

             from v$session s, v$process p

            where s.sid = &sid

              and s. SERIAL# = &serial#

    and p.addr = s.paddr) p,

          (select t.instance

             from v$thread t, v$parameter v

            where v.name = 'thread'

              and (v.value = 0 or t.thread# = to_number(v.value))) i,

          (select value from v$parameter where name = 'user_dump_dest') d;

    --使用tkprof生成分析文件

    $tkprof /u01/app/Oracle/admin/center/udump/_ora_24012.trc/u01/app/oracle/admin/center/udump/center_ora_24012.txt aggregate=yes sys=no sort=fchela(此例中将执行最耗时的sql放在分析文件的开头)


    trace本session

    查询本session信息

    SQL>SELECT Sid, Serial# FROM V$session WHERE sid = Sys_Context ( 'USERENV' , 'SID' );

    SQL>alter session set sql_trace=true;

    SQL>#SQL Statements#

    SQL>alter session set sql_trace=false;

    查询生成的trace文件名

    SQL>SELECT d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||

          p.spid || '.trc' trace_file_name

     from (select p.spid

             from v$mystat m, v$session s, v$process p

            where m.statistic# = 1

              and s.sid = m.sid

              and p.addr = s.paddr) p,

          (select t.instance

             from v$thread t, v$parameter v

            where v.name = 'thread'

              and (v.value = 0 or t.thread# = to_number(v.value))) i,

          (select value from v$parameter where name = 'user_dump_dest') d;

    tkprof格式化处理

    $tkprofcenter_ora_24012.trccenter_ora_24012.txt {一系列参数}

    Statement
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    oracle怎么查看表属于哪个表空间oracle怎么查看表属于哪个表空间Jul 06, 2023 pm 01:31 PM

    oracle查看表属于哪个表空间的方法:1、使用“SELECT”语句,并通过指定表名来查找指定表所属的表空间;2、使用Oracle提供的数据库管理工具来查看表所属的表空间,这些工具通常提供了图形界面,使得操作更加直观和方便;3、在SQL*Plus中,可以通过输入“DESCRIBEyour_table_name;”命令来查看表所属的表空间。

    如何使用PDO连接到Oracle数据库如何使用PDO连接到Oracle数据库Jul 28, 2023 pm 12:48 PM

    如何使用PDO连接到Oracle数据库概述:PDO(PHPDataObjects)是PHP中一个操作数据库的扩展库,它提供了一个统一的API来访问多种类型的数据库。在本文中,我们将讨论如何使用PDO连接到Oracle数据库,并执行一些常见的数据库操作。步骤:安装Oracle数据库驱动扩展在使用PDO连接Oracle数据库之前,我们需要安装相应的Oracl

    oracle如何只取一条重复的数据oracle如何只取一条重复的数据Jul 06, 2023 am 11:45 AM

    oracle只取一条重复的数据的步骤:1、使用SELECT语句结合GROUP BY和HAVING子句来查找重复数据;2、使用ROWID删除重复数据,可以确保删除的是精确的重复数据记录,或者使用“ROW_NUMBER()”函数删除重复数据,这将删除每组重复数据中的除了第一条记录之外的其他记录;3、使用“select count(*) from”语句返回删除记录数确保结果。

    实现PHP和Oracle数据库的数据导入实现PHP和Oracle数据库的数据导入Jul 12, 2023 pm 06:46 PM

    实现PHP和Oracle数据库的数据导入在Web开发中,使用PHP作为服务器端脚本语言可以方便地操作数据库。Oracle数据库作为一种常见的关系型数据库管理系统,具备强大的数据存储和处理能力。本文将介绍如何使用PHP将数据导入到Oracle数据库中,并给出相应的代码示例。首先,我们需要确保已经安装了PHP和Oracle数据库,并且已经配置好了PHP对Orac

    如何高效地使用PHP和Oracle数据库的连接池如何高效地使用PHP和Oracle数据库的连接池Jul 12, 2023 am 10:07 AM

    如何高效地使用PHP和Oracle数据库的连接池引言:在开发PHP应用程序时,使用数据库是必不可少的一部分。而在与Oracle数据库交互时,连接池的使用对于提高应用程序的性能和效率至关重要。本文将介绍如何在PHP中高效地使用Oracle数据库连接池,并提供相应的代码示例。一、连接池的概念及优势连接池是一种管理数据库连接的技术,它通过事先创建一批连接并维护一个

    oracle数据库需要jdk吗oracle数据库需要jdk吗Jun 05, 2023 pm 05:06 PM

    oracle数据库需要jdk,其原因是:1、当使用特定的软件或功能时需要包含在JDK中的其他软件或库;2、需要安装Java JDK才能在Oracle数据库中运行Java程序;3、JDK提供了开发和编译Java应用程序的功能;4、满足Oracle对Java函数的要求,以帮助实现和实现特定功能。

    oracle如何在存储过程中判断表是否存在oracle如何在存储过程中判断表是否存在Jul 06, 2023 pm 01:20 PM

    oracle在存储过程中判断表是否存在的步骤:1、使用“user_tables`”系统表查询当前用户下的表信息,将传入的表名“p_table_name”与“table_name”字段进行比较,满足条件,则“COUNT(*)”会返回大于0的值;2、使用“SET SERVEROUTPUT ON;”语句和“EXEC`”关键字执行存储过程,并传入表名,即可判断表是否存在。

    如何使用php扩展PDO连接Oracle数据库如何使用php扩展PDO连接Oracle数据库Jul 29, 2023 pm 07:21 PM

    如何使用PHP扩展PDO连接Oracle数据库导语:PHP是一种非常流行的服务器端编程语言,而Oracle是一款常用的关系型数据库管理系统。本文将介绍如何使用PHP扩展PDO(PHPDataObjects)来连接Oracle数据库。一、安装PDO_OCI扩展要连接Oracle数据库,首先需要安装PDO_OCI扩展。以下是安装PDO_OCI扩展的步骤:确保

    See all articles

    Hot AI Tools

    Undresser.AI Undress

    Undresser.AI Undress

    AI-powered app for creating realistic nude photos

    AI Clothes Remover

    AI Clothes Remover

    Online AI tool for removing clothes from photos.

    Undress AI Tool

    Undress AI Tool

    Undress images for free

    Clothoff.io

    Clothoff.io

    AI clothes remover

    AI Hentai Generator

    AI Hentai Generator

    Generate AI Hentai for free.

    Hot Article

    R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
    2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
    Repo: How To Revive Teammates
    4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island Adventure: How To Get Giant Seeds
    3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

    Hot Tools

    WebStorm Mac version

    WebStorm Mac version

    Useful JavaScript development tools

    SublimeText3 Mac version

    SublimeText3 Mac version

    God-level code editing software (SublimeText3)

    SublimeText3 Chinese version

    SublimeText3 Chinese version

    Chinese version, very easy to use

    Safe Exam Browser

    Safe Exam Browser

    Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

    Dreamweaver Mac version

    Dreamweaver Mac version

    Visual web development tools