使用SQL TRACE 实用工具和TKPROF
来源:百度文库 编辑:神马文学网 时间:2024/07/03 08:56:03
set timing on
设置SQL查询时间
一、设置init.ora 中的TIMED_STATISTICES、MAX_DUP_FILE_SIZE、USER_DUMP_DEST
show parameter timed_statistics;
TIMED_STATISTICS 用于启动或禁止对定时统计信息(如CUP时间、占用时间),以及动态性能表中多种统计信息的收集功能。
alter session set timed_statistics true;
alter system set timed_statistics false;
MAX_DUP_FILE_SIZE 当实例层启用SQL TRACE的时候,在每次请求服务器的时候,都将在跟踪文件中产生一个文本行,这些文件
的最大尺寸受限于初始化参数的设置。默认为500。若里面的数据被截断则增大SIZE。若为UNLIMITED则意味
着没有上限。
USER_DUMP_DEST 设置跟踪文件的存储位置。默认为admin/用户/udump;alter system set user_dump_dest=newdir
BACKGROUND_DUMP_DEST 在多线程服务器(MTS)连接时采用。
二、启动SQL TRACE实用工具
对会话启动SQL TRACE
alter session set sql_trace=true;
alter session set sql_trace=false;
SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION=( SID , SERIAL# , TRUE );
ALTER SESSION SET EVENTS
alter session set events ‘10046 trace name context forever,level‘;
alter session set events ‘10046 trace name context off‘;
alter system set events ‘10046 trace name context forever,level 1‘
alter system set events ‘10046 trace name context off‘
n=1---------激活标准SQL_TRACE工具,这与设置SQL_TRACE=TRUE 没有任何不同;
n=4---------激活标准SQL_TRACE,且可以扑获跟踪文件中的绑定变量。
n=8---------激活标准SQL_TRACE,且可在查询级上扑获跟踪文件中的等待事件。
n=12--------激活标准SQL_TRACE,并包括扑获绑定变量与等待事件。
对用户实例启动 SQL TRACE
alter system set sql_trace=true;
alter system set sql_trace=false;
在WEB应用程序中用该用户的触发器
create or replace trigger logon_trigger
alter logon on database
begin
if(user=‘TKYTE‘)then
excute immediate
‘ALTER SESSION SET ENVETS"10046 TRACE NAME CONTEXT FOREBER,LEVEL4"‘);
end if;
end;
create or replace trigger trace_logon
after logon on database
begin
if ( user = ‘SCOTT‘ ) then
execute immediate
‘alter session set sql_trace=true‘;
end if;
end;
/
三、利用TKPROF格式化跟踪文件
tkprof
对跟踪文件中的COMMIT、ROLLBACK,TKPROF不能产生报告
tkprof filename1 filename2 sort=(prsdsk,exedsk,fchdsk) print=10 explanin=scott/tiger table=scott.temp_plan_table_a
insert=storea.sql sys=no
filename1 tkprof的输入文件,它是SQL跟踪工具产生的跟踪文件,包含有关的统计信息。
filename2 输出TKPROF输出的格式化文件名。
SORT 在将被跟踪的SQL语句列表输出到跟踪文件之前,先将其按照指定排序选项的降序关系对其进行排序;若指定了多种排序选项,
那么根据排序选项所指定值的和的降序关系对其进行排序;若忽略此参数,那么TKPROF将按照使用次序把语句列表到输出文件中。
PRSCNT 语句解析的数目;
PRSCPU 语句解析所占用的CPU时间;
PRSELA 语句解析所占用的时间(总是大于或等于CPU时间);
PRSDSK 语句解析期间,从磁盘进行物理读取的数目;
PRSQRY 语句解析期间,一致模式块读取(CONSISTENT MODE BLOCK READ)的数目;
PRSCU 语句解析期间,当前模式读取(CURRENT MODE BLOCK READ)的数目
PRSMIS 语句解析期间,库缓存失败的数目;
EXECNT 语句执行的数目;
EXECPU 语句执行所占用的CPU时间;
EXEELA 语句执行所占用的时间(总是大于或等于CPU时间);
EXEDSK 语句执行期间,从磁盘进行物理读取的数目;
EXEQRY 语句执行期间,一致模式块读取(CONSISTENT MODE BLOCK READ)的数目;
EXECU 语句执行期间,当前模式读取(CURRENT MODE BLOCK READ)的数目
EXEROW 语句执行期间,所处理的语句行数;
EXEMIS 语句执行期间,库缓存失败的数目;
FCHCNT 取数据的数目;
FCHCPU 取数据所占用的CPU时间;
FCHELA 取数据所占用的时间(总是大于或等于CPU时间);
FCHDSK 取数据期间,从磁盘进行物理读取的数目;
FCHQRY 取数据期间,一致模式块读取(CONSISTENT MODE BLOCK READ)的数目;
FCHCU 取数据期间,当前模式读取(CURRENT MODE BLOCK READ)的数目
FCHROW 所获取的行数;
PRINT 只列出输出文件中的第一个INTEGER的SQL语句,若忽略,则TKPROF将列出所有跟踪的SQL语句。
AGGREGATE 若用户指定AGGREGATE=NO,TKPROF将不会对相同SQL文本的多个用户进行汇总。
INSERT SQL脚本的一种,用于将跟踪文件的动机信息存储到数据库中。
SYS 用于启动或禁止将用户SYS所发布的SQL语句列表到输出文件之中,也包括递归SQL(为执行用户的SQL语句,ORACLE还必须执行
一些附加语句)语句在内。默认为YES。
TABLE 用于指定在将执行规划写进输出文件之前,TKPROF用于临时存放执行规划所用表的架构和名称。
SESSION 对于跟踪文件中的个条SQL语句,用于确定其相应的执行规划,并将执行规划写进输出文件之中。
RECORD 对于跟踪文件中的所用非递归SQL语句,TKPROF 将以指定的名称来创建某个SQL脚本。用于对跟踪文件中的用户时间进行重放。
find "total" resport.txt 用FIND来抽取所有的TOTAL行,以便我能知道应加速进行的查询。
三、表式统计信息
PARSE 将把SQL语句转化为执行规划,其中包括对安全授权的检查,以及对存在表、列和其他访问对象进行检查。
EXECUTE 由ORACLE进行语句执行。对于INSERT、UPDATE、DELETE的语句,将对数据进行修改;对于SELECT语句,将对所选行进行确定。
FETCH 将检查出查询的返回行,只有SELECT语句能够执行取数据的操作。
COUNT 语句解析、执行或取数据等调用的次数;
CPU 某条语句进行解析、执行和取数据等调用所占用地时间,单位为秒。若TIMED_STATISTICS功能处于为启动,则该值为0;
ELAPSED 某条语句进行解析、执行和取数据等调用所占用地时间,单位为秒。若TIMED_STATISTICS功能处于为启动,则该值为0;
DISK 对于所有语句解析、执行和取数据等调用,从磁盘数据文件中物理读取的数据块数目;
QHERY 对于所有语句解析、执行和取数据等调用,以一致模式所检索的缓冲总数目。通常下,查询通过一致模式进行检索工作。
CURRENT 以当前模式所检索的缓冲总数目,对INSERT、UOPDATE、DELETE 等语句,查询通过当前模式进行检索工作。
ROWS SQL语句所处理行的总数目,它并不包括SQL语句的子查询所处理的行数。
PARSE-COUNT/EXECUTE-COUNT确定内存使用情况
CPU/ELAPSED确定等待时间
FETCH-COUNT/FETCH-ROW确定一次性读取的行数,是否用批量处理(默认使用时为15行)
DISK COUNT=QUERY+CRRENT MODE BLOCK COUNT 则所有的块从磁盘读。应该有些从SGA中读取。
UNNEST_SUBQUERY =TRUE 启动子查询去嵌套。
NO_UNNEST 关闭特定子查询块
设置SQL查询时间
一、设置init.ora 中的TIMED_STATISTICES、MAX_DUP_FILE_SIZE、USER_DUMP_DEST
show parameter timed_statistics;
TIMED_STATISTICS 用于启动或禁止对定时统计信息(如CUP时间、占用时间),以及动态性能表中多种统计信息的收集功能。
alter session set timed_statistics true;
alter system set timed_statistics false;
MAX_DUP_FILE_SIZE 当实例层启用SQL TRACE的时候,在每次请求服务器的时候,都将在跟踪文件中产生一个文本行,这些文件
的最大尺寸受限于初始化参数的设置。默认为500。若里面的数据被截断则增大SIZE。若为UNLIMITED则意味
着没有上限。
USER_DUMP_DEST 设置跟踪文件的存储位置。默认为admin/用户/udump;alter system set user_dump_dest=newdir
BACKGROUND_DUMP_DEST 在多线程服务器(MTS)连接时采用。
二、启动SQL TRACE实用工具
对会话启动SQL TRACE
alter session set sql_trace=true;
alter session set sql_trace=false;
SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION=( SID , SERIAL# , TRUE );
ALTER SESSION SET EVENTS
alter session set events ‘10046 trace name context forever,level
alter session set events ‘10046 trace name context off‘;
alter system set events ‘10046 trace name context forever,level 1‘
alter system set events ‘10046 trace name context off‘
n=1---------激活标准SQL_TRACE工具,这与设置SQL_TRACE=TRUE 没有任何不同;
n=4---------激活标准SQL_TRACE,且可以扑获跟踪文件中的绑定变量。
n=8---------激活标准SQL_TRACE,且可在查询级上扑获跟踪文件中的等待事件。
n=12--------激活标准SQL_TRACE,并包括扑获绑定变量与等待事件。
对用户实例启动 SQL TRACE
alter system set sql_trace=true;
alter system set sql_trace=false;
在WEB应用程序中用该用户的触发器
create or replace trigger logon_trigger
alter logon on database
begin
if(user=‘TKYTE‘)then
excute immediate
‘ALTER SESSION SET ENVETS"10046 TRACE NAME CONTEXT FOREBER,LEVEL4"‘);
end if;
end;
create or replace trigger trace_logon
after logon on database
begin
if ( user = ‘SCOTT‘ ) then
execute immediate
‘alter session set sql_trace=true‘;
end if;
end;
/
三、利用TKPROF格式化跟踪文件
tkprof
对跟踪文件中的COMMIT、ROLLBACK,TKPROF不能产生报告
tkprof filename1 filename2 sort=(prsdsk,exedsk,fchdsk) print=10 explanin=scott/tiger table=scott.temp_plan_table_a
insert=storea.sql sys=no
filename1 tkprof的输入文件,它是SQL跟踪工具产生的跟踪文件,包含有关的统计信息。
filename2 输出TKPROF输出的格式化文件名。
SORT 在将被跟踪的SQL语句列表输出到跟踪文件之前,先将其按照指定排序选项的降序关系对其进行排序;若指定了多种排序选项,
那么根据排序选项所指定值的和的降序关系对其进行排序;若忽略此参数,那么TKPROF将按照使用次序把语句列表到输出文件中。
PRSCNT 语句解析的数目;
PRSCPU 语句解析所占用的CPU时间;
PRSELA 语句解析所占用的时间(总是大于或等于CPU时间);
PRSDSK 语句解析期间,从磁盘进行物理读取的数目;
PRSQRY 语句解析期间,一致模式块读取(CONSISTENT MODE BLOCK READ)的数目;
PRSCU 语句解析期间,当前模式读取(CURRENT MODE BLOCK READ)的数目
PRSMIS 语句解析期间,库缓存失败的数目;
EXECNT 语句执行的数目;
EXECPU 语句执行所占用的CPU时间;
EXEELA 语句执行所占用的时间(总是大于或等于CPU时间);
EXEDSK 语句执行期间,从磁盘进行物理读取的数目;
EXEQRY 语句执行期间,一致模式块读取(CONSISTENT MODE BLOCK READ)的数目;
EXECU 语句执行期间,当前模式读取(CURRENT MODE BLOCK READ)的数目
EXEROW 语句执行期间,所处理的语句行数;
EXEMIS 语句执行期间,库缓存失败的数目;
FCHCNT 取数据的数目;
FCHCPU 取数据所占用的CPU时间;
FCHELA 取数据所占用的时间(总是大于或等于CPU时间);
FCHDSK 取数据期间,从磁盘进行物理读取的数目;
FCHQRY 取数据期间,一致模式块读取(CONSISTENT MODE BLOCK READ)的数目;
FCHCU 取数据期间,当前模式读取(CURRENT MODE BLOCK READ)的数目
FCHROW 所获取的行数;
PRINT 只列出输出文件中的第一个INTEGER的SQL语句,若忽略,则TKPROF将列出所有跟踪的SQL语句。
AGGREGATE 若用户指定AGGREGATE=NO,TKPROF将不会对相同SQL文本的多个用户进行汇总。
INSERT SQL脚本的一种,用于将跟踪文件的动机信息存储到数据库中。
SYS 用于启动或禁止将用户SYS所发布的SQL语句列表到输出文件之中,也包括递归SQL(为执行用户的SQL语句,ORACLE还必须执行
一些附加语句)语句在内。默认为YES。
TABLE 用于指定在将执行规划写进输出文件之前,TKPROF用于临时存放执行规划所用表的架构和名称。
SESSION 对于跟踪文件中的个条SQL语句,用于确定其相应的执行规划,并将执行规划写进输出文件之中。
RECORD 对于跟踪文件中的所用非递归SQL语句,TKPROF 将以指定的名称来创建某个SQL脚本。用于对跟踪文件中的用户时间进行重放。
find "total" resport.txt 用FIND来抽取所有的TOTAL行,以便我能知道应加速进行的查询。
三、表式统计信息
PARSE 将把SQL语句转化为执行规划,其中包括对安全授权的检查,以及对存在表、列和其他访问对象进行检查。
EXECUTE 由ORACLE进行语句执行。对于INSERT、UPDATE、DELETE的语句,将对数据进行修改;对于SELECT语句,将对所选行进行确定。
FETCH 将检查出查询的返回行,只有SELECT语句能够执行取数据的操作。
COUNT 语句解析、执行或取数据等调用的次数;
CPU 某条语句进行解析、执行和取数据等调用所占用地时间,单位为秒。若TIMED_STATISTICS功能处于为启动,则该值为0;
ELAPSED 某条语句进行解析、执行和取数据等调用所占用地时间,单位为秒。若TIMED_STATISTICS功能处于为启动,则该值为0;
DISK 对于所有语句解析、执行和取数据等调用,从磁盘数据文件中物理读取的数据块数目;
QHERY 对于所有语句解析、执行和取数据等调用,以一致模式所检索的缓冲总数目。通常下,查询通过一致模式进行检索工作。
CURRENT 以当前模式所检索的缓冲总数目,对INSERT、UOPDATE、DELETE 等语句,查询通过当前模式进行检索工作。
ROWS SQL语句所处理行的总数目,它并不包括SQL语句的子查询所处理的行数。
PARSE-COUNT/EXECUTE-COUNT确定内存使用情况
CPU/ELAPSED确定等待时间
FETCH-COUNT/FETCH-ROW确定一次性读取的行数,是否用批量处理(默认使用时为15行)
DISK COUNT=QUERY+CRRENT MODE BLOCK COUNT 则所有的块从磁盘读。应该有些从SGA中读取。
UNNEST_SUBQUERY =TRUE 启动子查询去嵌套。
NO_UNNEST 关闭特定子查询块
使用SQL TRACE 实用工具和TKPROF
使用SQL TRACE 实用工具和TKPROF
DELLx50v的购买、使用技巧和实用工具
DELLx50v的购买、使用技巧和实用工具
Scripting Trace‘s for SQL 2005
Trace 和Debug WriteLine 方法
如何使用 ASP.NET 实用工具加密凭据和会话状态连接字符串
使用SQL Cache Dependencies
使用SQL Cache Dependencies
sql server 使用技巧
实用工具
实用工具
实用工具
实用工具
SQL查询语句精华使用
sql server 游标的使用
PL/SQL Developer 使用笔记
管理Microsft Server和PC 的实用工具
SQLServer和嵌入式SQL
Hibernate和sql
使用SQL语句获取SQL Server数据库登录用户权限
SQL*PLUS命令的使用大全
Vim 与 SQL*Plus 结合使用
SQL Server 2000中的触发器使用_1