王朝网络
分享
 
 
 

SQL SERVER 2000系统提供的跟踪函数(二)

王朝mssql·作者佚名  2006-01-09
宽屏版  字体: |||超大  

SQL SERVER 2000系统支持的跟踪函数(二)

Baya Pavliashvili and Kevin Kline

http://msdn.microsoft.com/library/default.asp?url=/nhp/default.asp?contentid=28000409

fn_trace_getfilterinfo 和 fn_trace_geteventinfo

这些函数可以用来检索一个跟踪的元数据(这些函数的输出的含义是模糊的,如果你不熟悉跟踪的事件标志符和过虑的列的标志符.你可以看看SQL SERVER的在线帮助 “sp_trace_setevent”)

这2个函数都是将跟踪标志符作为唯一的参数. fn_trace_getfilterinfo返回指定跟踪的过虑后的信息.举例:假设我们限制跟PUBS数据库,因为我们试图解决该数据库中一个运行很长时间的查询的故障,我们可以如下运行该函数:

SELECT * FROM :: fn_trace_getfilterinfo(1)

--Results:

columnID logical_operator comparison_operator value

---------- ---------------- ------------------- ---------

35 0 6 pubs

这个输出告诉我们,我们指定的跟踪过虑是在列为35(数据库名)和没有使用逻辑操作符("AND" or "OR") 因为只有一个条件.比较操作符是”LIEE”(=6)过滤的值是”PUBS”.

根据你应用过虑的类型,你可以改变比较操作符.在许多案例中,你可以使用 LIKE或 NOT LIKE.而且,如果你限制跟踪指定的处理或指定的数据库,那么你可以指定"=", ">", "< >", "<", "> =", or "< ="等逻辑操作符.

备注:如果你通过SQL SERVER Profiler工具建立一个跟踪,这个跟踪会自动增加一个过滤器,不包括通过Profiler自己产生给SQL SERVER的跟踪过滤语句.如果你喜欢了解Profiler工具,只要简单的将过滤器设置为off.

fn_tracegeteventinfo 可以返回一个跟踪的事件信息,有很多的跟踪事件你可以指定.你指定的事件越多,就会有更多的信息被整理,因此要仔细.我劝告大家要了解每一个事件的含义并且选择那些和你解决问题密切相关的事件. fn_tracegeteventinfo 是一个非常有用的函数,当你因为不同的目的要模拟运行多个跟踪.

要获得我们建立的跟踪事件的标志符,我们可以如下运行fn_tracegeteventinfo函数:

SELECT DISTINCT eventid

FROM :: fn_trace_geteventinfo(1)

--Results:

eventid

-----------

12

37

40

41

42

43

这个结果告诉我们,这个跟踪在检测以下事件:

· SQL: BatchCompleted—event id of 12

· SP: Recompile—event id of 37

· SQL: StatementStarting—event id of 40

· SQL: StatementCompleted—event id of 41

· SP: Starting—event id of 42

· SP: Completed—event id of 43

同样的,我们可以运行相同的函数,进行很小的改动就可以获得一个跟踪的所有数据列

SELECT DISTINCT columnid FROM :: fn_trace_geteventinfo(1)

--Results:

columnid

-----------

1

10

11

12

13

14

16

17

18

这里我们收集的典型数据用来性能调整,包括一个查询的:正文数据,程序名,登陆名,SPID,持续时间,开始结束时间,读取,写入和CPU占用.

使用系统提供的UDFs

现在你指定一些系统提供的UDFs,你可以通过这些系统函数建立自己的自定义函数.其中有一个主要的限制是自定义函数无法调用存储过程.但是自定义函数可以调用其他的自定义函数.下面的UDF初始化fn_trace_geteventinfo函数,使结果更方便阅读:

CREATE FUNCTION dbo.fn_GetTraceColumns (@trace_id INT)

RETURNS @TraceColumns TABLE (

column_id INT,

column_name VARCHAR(155)

)

AS

BEGIN

INSERT @TraceColumns (

column_id)

SELECT DISTINCT columnid FROM ::

fn_trace_geteventinfo(@trace_id)

UPDATE @TraceColumns

SET column_name =

CASE column_id

WHEN 1 THEN 'TextData'

WHEN 3 THEN 'DatabaseID'

WHEN 4 THEN 'TransactionID'

WHEN 6 THEN 'NTUserName'

-- similar statements omitted here - see Source

ELSE 'other'

END

RETURN

END

This function can be executed as follows:

SELECT * FROM dbo.fn_getTraceColumns(3)

概要

在这篇文章中,我介绍了SQL SERVER 2000提供的非常有用的系统自定义函数,希望大家喜欢并且研究其他的系统提供的自定义函数.

下载: TRACEUDFS.SQL

参考资源:

· 284790 INF: How to Create a SQL Server 2000 Trace

· 283786 INF: How to Monitor SQL Server 2000 Traces

· 270599 BUG: fn_trace_gettable Function Cannot Read Rollover Files 273972 Generated by SQL

· ProfilerHOW TO: Programmatically Load Trace Files into Tables

· 268591 PRB: ODBC Tracing to SQL.LOG Can Slow SQL Server or Consume All Disk Space

· 307786 INF: Tracing to Network Drive May Reduce SQL Server Throughput

· 286239 BUG: Replay Tool Uses LoginName Column for SETUSER Instead of DatabaseUserName Column

· Andrew Novick's "Find Out What They're Doing with fn_get_sql"—www.databasejournal.com/features/mssql/article.php/2189761

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有