当前位置: 首页 > 图文教程 > 数据库 > Oracle > 教你在Oracle中启动脚本跟踪存储过程

Oracle
Excel VBA连接并操作Oracle
Oracle 外连接实现代码
oracle 存储过程和函数例子
Oracle 数据库操作类
ORACLE 分区表的设计
Oracle 用户权限管理方法
Oracle In和exists not in和not exists的比较分析
利用windows任务计划实现oracle的定期备份
ORACLE11g随RHEL5系统自动启动与关闭的设置方法
在oracle 数据库查询的select 查询字段中关联其他表的方法
plsql和tsql常用函数比对
plsql与tsql的语法不同
ASP.NET调用oracle存储过程实现快速分页
执行drop表操作后数据库无法起动
分析Oracle有时会用索引来查找数据的原因
数据从MySQL迁移到 Oracle的注意事项
快速理解Oracle归档模式的命令及参数
在Oracle里加快SQL执行的三种方法
几条常见的数据库分页 SQL 语句
Oracle9I OCP认证过程

教你在Oracle中启动脚本跟踪存储过程


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-31   浏览: 166 ::
收藏到网摘: n/a

一、用脚本启动并设置跟踪的示例

    我们可以用脚本进行跟踪存储过程,当然要了解这些存储过程的具体语法和参数的含义,至于这些语法和参数含义请查询联机帮助。下面请看一实例:


/*******************************************/
/* Created by: SQL Profiler                 */
/* Date: 2004/06/19 16:50:05       */
/*******************************************/
-- Create a Queue
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
set @maxfilesize = 5

-- Please replace the text InsertFileNameHere, with an appropriate
-- filename prefixed by a path, e.g., c:\MyFolder\MyTrace. The .trc extension
-- will be appended to the filename automatically. If you are writing from
-- remote server to local drive, please use UNC path and make sure server has
-- write access to your network share

exec @rc = sp_trace_create @TraceID output, 0, N'c:\test', @maxfilesize, NULL
if (@rc != 0) goto error

-- Client side File and Table cannot be scripted
-- Writing to a table is not supported through the SP's
-- Set the events
declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 12, 1, @on
exec sp_trace_setevent @TraceID, 12, 12, @on
exec sp_trace_setevent @TraceID, 12, 14, @on

-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Profiler'
set @intfilter = 100
exec sp_trace_setfilter @TraceID, 22, 0, 4, @intfilter
set @intfilter = 1
exec sp_trace_setfilter @TraceID, 23, 1, 0, @intfilter
exec sp_trace_setfilter @TraceID, 35, 1, 6, N'pubs'

-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1
-- display trace id for future references
select TraceID=@TraceID
goto finish

error:
select ErrorCode=@rc
finish:
go
 

二、生成跟踪脚本的最简式

事件探查器建立跟踪, 并设置好各种选项, 完成后运行跟踪,然后生成脚本。

    事件探查器--文件--导出跟踪定义的文件--选择合适的版本。这样就会生成一个跟踪的脚本, 打开生成的脚本, 修改里面的:exec @rc = sp_trace_create部分, 设置跟踪结果的保存文件(用语句跟踪的时候, 跟踪结果只能保存到文件)。然后, 在需要跟踪的时候, 运行这个脚本来启动跟踪。启动跟踪后, 跟踪自动进行, 所以你可以关闭查询分析器做其他事情去了。

三、已知的问题

1.跟踪记录不是实时写入跟踪文件的, 因此, 可能会到你停止跟踪的时候, 跟踪信息才写入跟踪文件

2.查看当前已经进行的跟踪可以用(关于结果集的解释, 请看联机帮助):


SELECT * FROM ::fn_trace_getinfo(0)
 

3. 停止某个跟踪, 可以在sp_trace_create 语句中设置自动停止时间, 也可以手动停止跟踪, 用下面的语句:


EXEC sp_trace_setstatus
  @traceid = 1 ,   -- 跟踪的id
  @status = 0     -- 停止, 这样以后还可能指定此项为来启用
EXEC sp_trace_setstatus
  @traceid = 1 ,
  @status = 2     -- 关闭, 彻底释放