Home  >  Article  >  Database  >  Oracle中如何用T

Oracle中如何用T

WBOY
WBOYOriginal
2016-06-07 15:07:201233browse

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 一、用脚本启动并设置跟踪的示例 通过这个示例,你可以了解用脚本进行跟踪所涉及到的存储过程,要了解这些存储过程的具体语法和参数的含义,请查询联机帮助 /*************************************

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

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

通过这个示例,你可以了解用脚本进行跟踪所涉及到的存储过程,要了解这些存储过程的具体语法和参数的含义,请查询联机帮助

<ccid_code>/****************************************************/
/* 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</ccid_code>

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

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

然后生成脚本:

事件探查器--文件--导出跟踪定义的文件--选择合适的版本.

这样就会生成一个跟踪的脚本, 打开生成的脚本, 修改里面的:

exec @rc = sp_trace_create

部分, 设置跟踪结果的保存文件(用语句跟踪的时候, 跟踪结果只能保存到文件)

然后, 在需要跟踪的时候, 运行这个脚本来启动跟踪

启动跟踪后, 跟踪自动进行, 所以你可以关闭查询分析器做其他事情去了.

三、已知的问题

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

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

<ccid_code>SELECT * FROM ::fn_trace_getinfo(0)</ccid_code>

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

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

Oracle中如何用T

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