search
HomeDatabaseMysql TutorialT-SQL生成SQL追踪信息
T-SQL生成SQL追踪信息Jun 07, 2016 pm 02:57 PM
serversqlinformationgeneratetrack

SQL Server中可以使用内置的T-SQL存程建立trace收集数据库访问信息。 1. 生成trace 使用 sp_trace_create 创建跟踪。新生成的trace为停止状态(未运行)。MSDN详细说明 sp_trace_create语法 sp_trace_create [ @traceid= ] trace_id OUTPUT , [ @options= ] op

SQL Server中可以使用内置的T-SQL存程建立trace收集数据库访问信息。

1. 生成trace

使用sp_trace_create创建跟踪。新生成的trace为停止状态(未运行)。MSDN详细说明

sp_trace_create语法

sp_trace_create [ @traceid= ] trace_id OUTPUT
, [ @options= ] option_value, [ @tracefile= ] 'trace_file'
[ , [ @maxfilesize= ] max_file_size ]
[ , [ @stoptime= ] 'stop_time' ]
[ , [ @filecount= ] 'max_rollover_files' ]

参数说明

[@traceid=] trace_id :int,新trace的ID。缺省值为NULL,用户输入值将被忽略,由系统指定。[@options=] option_value :int,无缺省值。可指定为以下常量或组合。TRACE_FILE_ROLLOVER :2;当trace文件到达最大值(由max_file_size)后,系统将关闭当前文件,并创建新的文件继续跟踪。新文件名称由用户指定文件名+序号 构成。SHUTDOWN_ON_ERROR :4;如果系统无法写入跟踪文件,关闭SQL Server。TRACE_PRODUCE_BLACKBOX :8;指定服务器保留跟踪信息的最后5M内容;与其他选项不能同时使用。(详细说明见MSDN)[@tracefile=] 'trace_file' :nvarchar(245),无缺省值。指定跟踪信息所写入的文件。如:N'c:\sqltrace\mytrace.trc', 或N'\\servername\directory\mytrace.trc'。文件名中的后缀'trc'可忽略,由系统自动补全。如使用了 TRACE_FILE_ROLLOVER选项,建议在文件名中不要使用下划线'_'。[@maxfilesize=] max_file_size :int,缺省为5,单位为M。指定单个trace文件的最大尺寸。如指定了TRACE_FILE_ROLLOVER选项,则系统将会在当前文件到达指定 大小后使用新的文件继续记录跟踪信息;如未指定ROLLOVER选项,系统将会在文件大小到达指定大小后停止记录。[@stoptime=] 'stop-time' :datatime,缺省值为NULL。指定跟踪停止的时间。如为NULL,则手工控制或在数据库关闭时停止。[@filecount=] 'max_rollover_files' :int,>=1。指定回滚文件数量上限。仅当使用了TRACE_FILE_ROLLOVER选项时有效。当回滚文件数量超过此上限后,系统将会在 创建新文件前删除最老的跟踪文件。

返回值:为0表示成功;其他值表示失败。

2. 获取跟踪信息

使用fn_trace_getinfo()可获取全部或指定trace信息。

语法:

sys.fn_trace_getinfo ( { trace_id | NULL | 0 | DEFAULT } )

参数:

trace_id:指定欲获取信息的跟踪的IDNULL,0, DEFAULT:获取全部trace信息

返回表

traceid :跟踪的ID值Option :选项信息1:trace options2:file name3:max file size4:stop time5:当前状态(0=stopped, 1=running)value:属性值3. 控制跟踪状态(启/停)

使用sp_trace_setstatus可控制跟踪启动/停止/关闭。

语法:

sp_trace_setstatus [ @traceid = ] trace_id, [ @status= ] status

参数:

[@traceid=] trace_id :指定要控制的跟踪的ID[@status=] status :指定跟踪状态:0:停止1:启动2:关闭指定跟踪并从数据库服务器中删除此跟踪。关闭前跟踪必须处于停止状态;跟踪所生成的跟踪信息文件不会被删除。

返回值:0:成功;其他值表示错误。

4. 增加/移除跟踪敏感事件

使用sp_trace_setevent控制跟踪敏感事件列表。MSDN详细说明

语法:

sp_trace_setevent [ @traceid = ] trace_id , [ @eventid= ] event_id, [ @columnid= ] column_id, [ @on= ] on

参数:

[@traceid=] trace_id :指定要修改的目标跟踪ID[@eventid=] event_id :指定要修改的事件。如:RPC:Completed(10)/SQL:BatchCompleted(12)/Audit Login(14)/SP:Starting(42)/Prepare SQL(71)/Cursor Excute(74)/Trace File Close(150)/...[@columnid=] column_id :事件增/减的信息项(column)。如:TextData(1)/TransactionID94)/NTUserName(6) /HostName(8)/ClientProcessID(9)/ApplicationName(10)/LoginName(11)/DatabaseName(35)/RowCounts(48)/...[@on=] on :bit, 事件(信息项)开关on=1, columnid=NULL:事件开,清除所有列on=1, columnid!=NULL:事件开,收集指定列信息on=0, columnid=NULL:事件关,清除所有列on=0, columnid!=NULL:不再收集指定事件的指定列信息

返回值:0:成功;其他值表示错误。

5. 过滤跟踪信息

sp_trace_setfilter用以设置跟踪过滤条件。MSDN详细说明

语法:

sp_trace_setfilter [ @traceid = ] trace_id , [ @columnid= ] column_id, [ @logical_operator= ] logical_operator, [ @comparison_operator= ] comparison_operator, [ @value= ] value

参数:

[@traceid=] trace_id :指定跟踪ID[@columnid=] column_id :int,无缺省值;指定过滤条件应用的列。如为NULL,则SQLServer清除指定跟踪的所有过滤条件[@logical_operator=] logical_operator :int,无缺省值;指定条件应用的逻辑操作-与(AND,0), 或(OR, 1)[@comparison_operator=] comparison_operator :int,无缺省值;指定条件中比较操作类型:0: =(等于)1: (不等于)2: >(大于)3: =(大于等于)5: 返回值:0:成功;其他值表示错误 6. 其他跟踪相关存储过程

SQL Server还提供了一些其他跟踪相关存储过程,用以获取跟踪相关信息或对跟踪进行设置/自定义扩展。详细说明:MSDN:Introducing SQL Trace

sp_trace_generateevent 可结合触发器(Trigger),或单独使用,触发自户定义事件(事件值82-91)。 详细说明fn_trace_geteventinfo:获取指定跟踪当前敏感事件表fn_trace_getfilterinfo:获取指定跟踪当前过滤条件表fn_trace_gettable:以表格形式获取指定跟踪文件中的内容...7. 一个简单例子

第一步,创建跟踪:设置跟踪文件大小上限为10M,回滚文件个数为10,记录文件为d:\sqltrace\mytrace.trc

declare @maxfilesize bigint;
declare @filecnt int;
set @trid = 0;
set @maxfilesize = 10;
set @filecnt = 10;
exec sp_trace_create @trid OUTPUT, 2, N'd:\sqltrace\mytrace', @maxfilesize, NULL, @filecnt;
select @trid;
go

查看数据库当前所有跟踪的信息

select * from sys.fn_trace_getinfo(0);
go

设置敏感事件为SQL:BatchCompleted(12),收集信息:TextData(1), HostName(8), ClientProcessID(9), ApplicationName(10), LoginName(12)

declare @on bit;
set @on = 1;
exec sp_trace_setevent @trid,12,1, @on
exec sp_trace_setevent @trid,12,8, @on
exec sp_trace_setevent @trid,12,9, @on
exec sp_trace_setevent @trid,12,10, @on
exec sp_trace_setevent @trid,12,11, @on
go

设置过滤条件:不收集应用程序名(AppName, 10)为'sqlcmd'的的信息

sp_trace_setfilter @trid, 10, 0, 1, N'SQLCMD'
go

启动跟踪:

sp_trace_setstatus @trid, 2;
go

查看当前过滤条件

select * from fn_trace_getfilterinfo(@trid);
go

...(运行,收集数据)

查看跟踪文件:

select * from fn_trace_gettable(N'd:\sqltrace\mytrace.trc', default);
go

...

停止跟踪

sp_trace_setstatus @trid, 0;
go

关闭跟踪

sp_trace_setstatus @trid, 2;
go8. SQL Server2000的几点区别

SQL Server2000中,使用fn_trace系列系统存储过程时,需要在存储过程名前加"::"标识;

SQL Server2000中,仅当跟踪被停止(stop)并关闭(close)后,跟踪的内容才会写入文件中;

declare @maxfilesize bigint;
declare @filecnt int;
set @trid = 0;
set @maxfilesize = 10;
set @filecnt = 10;
exec sp_trace_create @trid OUTPUT, 2, N'd:\sqltrace\mytrace', @maxfilesize, NULL, @filecnt;
select @trid;
go
select * from sys.fn_trace_getinfo(0);
go
declare @on bit;
set @on = 1;
exec sp_trace_setevent @trid,12,1, @on
exec sp_trace_setevent @trid,12,8, @on
exec sp_trace_setevent @trid,12,9, @on
exec sp_trace_setevent @trid,12,10, @on
exec sp_trace_setevent @trid,12,11, @on
go
sp_trace_setfilter @trid, 10, 0, 1, N'SQLCMD'
go
sp_trace_setstatus @trid, 2;
go
select * from fn_trace_getfilterinfo(@trid);
go
select * from fn_trace_gettable(N'd:\sqltrace\mytrace.trc', default);
go
sp_trace_setstatus @trid, 0;
go
sp_trace_setstatus @trid, 2;
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
不再担心下班前被领导叫住开小会,AI助手帮你自动生成会议纪要不再担心下班前被领导叫住开小会,AI助手帮你自动生成会议纪要Sep 04, 2023 pm 11:21 PM

讯飞听见升级会议纪要功能,可以将口语表述直接转化为书面稿,AI能够根据录音总结会议纪要。AI能够帮助您完成会议纪要的撰写工作8月31日,讯飞听见网页端进行了版本升级,新增了PC端实时录音功能,能够利用人工智能智能生成会议纪要。这一功能的推出将大大提高用户在会议后整理内容、跟进重点工作事项的效率。对于经常参加会议的人来说,这个功能无疑是一个非常实用的工具,能够节省大量时间和精力该功能的应用场景主要是PC电脑端录音转文字自动生成会议纪要,旨在为用户提供最优质的服务和最先进的技术,快速提升办公效率的产

如何使用PHP生成可刷新的图片验证码如何使用PHP生成可刷新的图片验证码Sep 13, 2023 am 11:54 AM

如何使用PHP生成可刷新的图片验证码随着互联网的发展,为了防止恶意攻击和机器自动操作现象,很多网站都使用了验证码来进行用户验证。其中一种常见的验证码类型就是图片验证码,通过生成一张包含随机字符的图片,要求用户输入正确的字符才能进行后续操作。本文将介绍如何使用PHP生成可刷新的图片验证码,并提供具体的代码示例。步骤一:创建验证码图片首先,我们需要创建一个用于生

使用Python中的pyWaffle生成一个华夫饼图使用Python中的pyWaffle生成一个华夫饼图Aug 17, 2023 am 11:49 AM

数据可视化对于高效的信息理解和展示至关重要。在众多可用的图表类型中,华夫饼图以方形瓦片在网格状结构中显示数据的新颖方式。强大的Python模块PyWaffle方便了华夫饼图的开发,类似于许多计算和数据分析方法。在本文中,我们将看看如何使用复杂的Python模块PyWaffle创建华夫饼图。让我们安装PyWafle并看看如何使用它来可视化分类数据。在您的cmd中运行以下命令来安装该库,然后将其导入到您的代码中pipinstallpywaffleExample1的中文翻译为:示例1在这个例子中,我们

如何使用PHP进行基本的自然语言生成如何使用PHP进行基本的自然语言生成Jun 22, 2023 am 11:05 AM

自然语言生成是一种人工智能技术,它能够将数据转换为自然语言文本。在当今的大数据时代,越来越多的业务需要将数据可视化或呈现给用户,而自然语言生成正是一种非常有效的方法。PHP是一种非常流行的服务器端脚本语言,它可以用于开发Web应用程序。本文将简要介绍如何使用PHP进行基本的自然语言生成。引入自然语言生成库PHP自带的函数库并不包括自然语言生成所需的功能,因此

如何使用PHP生成带有时间限制的二维码?如何使用PHP生成带有时间限制的二维码?Aug 26, 2023 pm 04:34 PM

如何使用PHP生成带有时间限制的二维码?随着移动支付和电子门票的普及,二维码成为了一种常见的技术。在很多场景中,我们可能需要生成一种带有时间限制的二维码,即使在一定时间后,该二维码也将失效。本文将介绍如何使用PHP生成带有时间限制的二维码,并提供代码示例供参考。安装PHPQRCode库要使用PHP生成二维码,我们需要先安装PHPQRCode库。这个库

word目录生成错乱怎么办word目录生成错乱怎么办Feb 20, 2024 am 08:08 AM

word目录生成错乱怎么办随着科技的发展,电子文档已经成为我们日常工作和学习中不可或缺的一部分。而在编辑电子文档时,尤其是长篇文章或论文中,目录的生成是一个非常重要的步骤。目录能够方便读者查找到文章的内容和结构,提高阅读效率。然而,有时候我们在生成目录的过程中会遇到一些问题,比如目录生成出错,顺序混乱等。那么,如果word目录生成错乱,我们应该如何解决呢?首

如何使用Python生成两个日期之间的k个随机日期?如何使用Python生成两个日期之间的k个随机日期?Sep 09, 2023 pm 08:17 PM

生成随机数据在数据科学领域非常重要。从构建神经网络预测、股市数据等来看,通常都会将日期作为参数之一。我们可能需要在两个日期之间生成随机数以进行统计分析。本文将展示如何生成两个给定日期之间的k个随机日期使用随机和日期时间模块日期时间是Python内置的处理时间的库。另一方面,随机模块有助于生成随机数。因此,我们可以结合随机和日期时间模块来生成两个日期之间的随机日期。语法random.randint(start,end,k)这里的random指的是Python随机库。randint方法采用三个重要的

如何生成在在线答题中的错题本如何生成在在线答题中的错题本Sep 25, 2023 am 10:24 AM

如何生成在线答题的错题本在现如今的信息时代,网上答题已经成为了许多学生和教育工作者的常见任务。而错题一直是学习过程中的难题之一,很多人都希望能够方便地生成在线答题的错题本,以便更好地复习和掌握知识。本文将介绍如何通过编程实现在线答题错题本的生成功能,并提供具体的代码示例。第一步:搭建网页界面生成在线答题错题本需要一个网页界面来显示题目和答案。可以使用HTML

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
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.