mg4377娱乐娱城官网_mg4377娱乐手机版_www.mg4377.com

当前位置: mg4377娱乐娱城官网 > mg > 正文

Server中有关跟踪

时间:2019-09-23 01:22来源:mg
前言 前言 Trace flags can be used to alter the behavior of SQL Server and they canhelp when diagnosing performance issues as well. During the course ofdays I've come across cases from where I learnt about them certainly do let me know f

前言

前言

Trace flags can be used to alter the behavior of SQL Server and they can help when diagnosing performance issues as well. During the course of days I've come across cases from where I learnt about them & their purpose; certainly do let me know for any corrections that I may have missed out.

一提到追踪俩字,很六人想到警察匪徒片中的场景,同样在我们的SQL Server数据库中“追踪”也是无处不在的,假诺大家使用好了追踪本事,就足以本着一些特定的场景做定向分析,寻找丰盛的证据来破案。

一提到追踪俩字,相当多个人想到警察匪徒片中的场景,同样在大家的SQL Server数据库中“追踪”也是无处不在的,借使大家采纳好了追踪技巧,就能够针对一些特定的现象做定向分析,找寻雄厚的凭据来破案。

 

Summary: This paper introduces Trace and Replay objects, a new feature in Microsoft SQL Server 2005. Trace and Replay objects is a new managed API for tracing, trace manipulation, and trace replay. (12 printed pages)

简易的举多少个使用场景:

归纳的举多少个使用场景:

Flags can be set for Session or Global (some are startup) levels though for later some can only be switched at startup using –T (you are suggested to avoid –t which turns on other internal flags) otherwise DBCC TRACEON/TRACEOFF (FlagNo,(-1) optional ) comes quite handy.

Contents

Introduction
Trace Objects
Replay Objects
Conclusion

在线生产库为啥猛然宕机?数百张数据表为啥不见?刚打好补丁的系统为啥屡遭毒手?新加上的消息表为什么再三遗失?某张表字段的豁然退换,终归为哪个人所为?这一个个无名氏的访谈背后,终归是人是鬼?顿然增添的增量数据,究竟是对是错?数百兆的日记爆炸式的拉长背后又隐敝着什么样?这一且的骨子里,是应用程序的BUG依然顾客质量的缺点和失误?

在线生产库为啥忽地宕机?数百张数据表为什么不见?刚打好补丁的连串为何屡遭毒手?新加上的音信表为啥每每错过?某张表字段的陡然改换,毕竟为啥人所为?那个个无名的拜谒背后,究竟是人是鬼?猝然增加的增量数据,终归是对是错?数百兆的日记爆炸式的抓好背后又掩饰着怎么?这一且的背后,是应用程序的BUG照旧客户质量的缺少?

 

Introduction

This paper is written for users who deal with SQL Profiler or collect Microsoft SQL Server traces and want to automate trace collection, trace manipulation, and trace replay.

Knowledge of the C# language and some experience with the SQL Profiler tool is required to fully take advantage of the information provided.

SQL Server trace is a mechanism for monitoring and recording activity inside SQL Server. Essentially, when any activity occurs (a query is sent against the instance of SQL Server, for example), a special entity called an event is generated inside the server. The event is then shipped to a monitoring tool called SQL Profiler, which displays this event and all its attributes (called columns).

This combination of SQL Trace and SQL Profiler has proven to be a very powerful performance analyzing and tuning tool—it enables users to see what activity a particular application generates and what impact it has on the server.

However, the SQL Profiler tool is completely manual; therefore, it is not easy to automate the creation of the trace or perform trace analysis and trace manipulation. For most of these tasks, users must start SQL Profiler and use it interactively.

Trace and Replay objects, a new feature in Microsoft SQL Server 2005 that offers a new managed API for tracing and trace replay, are introduced to enable automation.

Trace and Replay objects simplify the management of SQL Server in the following ways:

  • First, they enable users to completely automate tuning, security audits, and health monitoring of traced servers.
  • Second, they enable automatic functional verification of new server releases and security packs.
  • Third, they provide users with the ability to establish performance benchmarks against current server performance.

This paper discusses Trace objects and Replay objects in detail.

请关切本篇小说,让大家联合利用数据库的“跟踪”(Trace)走进数据库背后,查看其内部原理。

请关怀本篇小说,让大家一起利用数据库的“追踪”(Trace)走进数据库背后,查看其内部原理。

Note: This list also contains some numbers which have not been checked, so in case you come across those a have a conflict do let me know.

Trace Objects

Organizations where the tracing of SQL Servers is performed on a regular basis often have to deal with large amounts of trace data, which needs to be processed and analyzed. SQL Profiler provides features to filter the traces; such an approach can be extremely labor-intensive, however. The ability to create a small program that would perform analysis in an automated fashion would provide a better way to handle this. For example, such a program could crawl through trace data and identify the most frequently executed query on the server. Such a program could be reused and perhaps later expanded to include increasingly sophisticated analysis logic.

Another important aspect of automation is a timely reaction to events that are happening on the server. It would be convenient to have a program that could start a trace, monitor events of the trace, and perhaps alert the administrator if the duration of particular queries exceeds a certain threshold.

It would also be convenient to be able to implement a way to perform other tasks, like moving trace files into SQL Server tables, or from tables to files, in a customized fashion.

Trace Object technology can help address these and other problems.

Trace objects serve the purpose of starting a new trace, and of reading and writing trace log files and trace tables. Essentially, there are three classes for accomplishing these purposes:

  • TraceServer—Starts and reads a new trace.
  • TraceFile—Reads and writes to a trace file.
  • TraceTable—Reads and writes to a trace table.

These classes belong to the Microsoft.SqlServer.Management.Trace namespace and provide an abstraction of a stream of trace events. This stream could be read-only (TraceServer) or provide reading and writing capabilities (TraceFile and TraceTable). Figure 1 illustrates the relationships between these classes.

图片 1.gif)

 

 

WARNING: These should be practiced with caution where they may not cause a performance boost and 've an adverse effect in some cases. . They are used in this post for discussion purposes only and may not be supported in future versions.

自个儿深信不疑如用过SQL Server数据库的人,都会或多或少的选拔过SQL Profiler工具。这个人正是利用SQL Trace形成的一个图形化操作工具,大家一直进去本篇的主题。

自家深信不疑如用过SQL Server数据库的人,都会或多或少的采取过SQL Profiler工具。这一个东西便是接纳SQL Trace形成的三个图形化操作工具,大家一向走入本篇的主题。

flag

 

 

Trace Flag Description (underlined are sp_configure’able)

一.查看系统私下认可追踪新闻(Default Trace)

一.查看系统暗中同意追踪新闻(Default Trace)

-1

Trace作为三个很好的数据库追踪工具,在SQL Server 二〇〇七中便集成到系统机能中去,况兼暗中认可是翻开的,当然我们也得以手动的密封它,它身处sp_config配置参数中,我们能够透过以下语句查看:

Trace作为二个很好的数据库追踪工具,在SQL Server 二零零七中便集成到系统功效中去,况且暗中认可是展开的,当然大家也能够手动的密封它,它座落sp_config配置参数中,大家得以经过以下语句查看:

Sets trace flags for all connections.

select * from sys.configurations where configuration_id = 1568
select * from sys.configurations where configuration_id = 1568

105

图片 2

图片 3

SQL 6.5 – To over ride limitation of max 16 tables or sub queries allowed in a single select statement.

大家也得以通过下边包车型地铁言语找到这些跟踪的笔录

咱俩也得以由此下边包车型地铁话语找到这几个追踪的记录

106

select * from sys.traces
select * from sys.traces

SQL 6.5/7 – Disables line number information for syntax errors.

图片 4

图片 5

107

设若未有开启,大家也足以运用如下语句进行开启,也许关闭等操作

假定未有展开,大家也得以使用如下语句举行开启,恐怕关闭等操作

SQL 6.5/7/8 – Interprets numbers with a decimal point as float instead of decimal. KB 203787

图片 6

图片 7

110

--开启Default Trace
sp_configure 'show advanced options' , 1 ;
GO
RECONFIGURE;
GO
sp_configure 'default trace enabled' , 1 ;
GO
RECONFIGURE;
GO

--测试是否开启
EXEC sp_configure 'default trace enabled';
GO

--关闭Default Trace
sp_configure 'default trace enabled' , 0 ;
GO
RECONFIGURE;
GO
sp_configure 'show advanced options' , 0 ;
GO
RECONFIGURE;
GO
--开启Default Trace
sp_configure 'show advanced options' , 1 ;
GO
RECONFIGURE;
GO
sp_configure 'default trace enabled' , 1 ;
GO
RECONFIGURE;
GO

--测试是否开启
EXEC sp_configure 'default trace enabled';
GO

--关闭Default Trace
sp_configure 'default trace enabled' , 0 ;
GO
RECONFIGURE;
GO
sp_configure 'show advanced options' , 0 ;
GO
RECONFIGURE;
GO

SQL 6.5 – Turns off ANSI select characteristics. KB 152032

图片 8

图片 9

Server中有关跟踪。146

因此以下命令找到暗许追踪的文件路线

透过以下命令找到默许追踪的公文路线

Consider using when replaying against SQL 8.0, to avoid an attempt to set an encrypted connection.

select * from ::fn_trace_getinfo(0)
select * from ::fn_trace_getinfo(0)

168

图片 10

图片 11

SQL 9/10 – On querying through a view that uses the ORDER BY clause, the result are still returned in random order. KB 926292

如上命令归来的结果值,各样值(property)代表的意义如下:

上述命令归来的结果值,种种值(property)代表的意义如下:

204

率先个:2意味滚动文件;

先是个:2象征滚动文件;

SQL 6.5 – Backward compatibility switch that enables non-ansi standard behavior. E.g. previously SQL server ignored trailing blanks in the like statement and allowed queries that contained aggregated functions to have items in the group by clause that were not in the select list.

第一个:表示这两天应用的trace文件路线,根据它大家能够找到其他的追踪文件,暗中认可是一致目录下

首个:表示目前利用的trace文件路线,依照它我们得以找到别的的追踪文件,私下认可是千篇一律目录下

205

其四个:表示滚动文件的深浅(单位MB),当到达这么些值就能够成立新的滚动文件

其多个:表示滚动文件的大大小小(单位MB),当达到这几个值就能够创立新的轮转文件

SQL 7/8 – Report when a statistics-dependent stored procedure is being recompiled as a result of AutoStat. KB 195565

第八个:追踪的休憩时间,这里为Null,表示尚无长久的停下时间

第八个:追踪的终止时间,这里为Null,表示不曾定点的安息时间

206

第五个:当前追踪的情景:0 停止;1 运转

第七个:当前追踪的气象:0 结束;1 运维

SQL 6.5 – Provides backward compatibility for the set user statement. KB 160732

 

 

208

找到该目录,大家查阅下该公文:

找到该目录,我们查阅下该公文:

SET QUOTED IDENTIFIER ON.

图片 12

图片 13

210

系统暗中同意提供5个追踪文件,而且每贰个文本暗中同意大小都以20MB,SQL Server会自个儿维护那5个文件,当实例重启的时候依旧达到最大值的时候,之后会再一次生成新的文书,将最初的追踪文件删除,依次滚动更新。

系统默许提供5个追踪文件,並且每三个文件私下认可大小都是20MB,SQL Server会本身维护那5个文本,当实例重启的时候依然达到最大值的时候,之后会再次生成新的文件,将最先的追踪文件删除,依次滚动更新。

SQL 9 – Error when you run a query against a view: "An error occurred while executing batch". KB 945892

 

 

212

大家经过以下命令来查看追踪文件中的内容:

大家通过以下命令来查阅追踪文件中的内容:

SQL 9 – Query may run much slower when compared to SQL 8 when you use a cursor to run the query. KB 951184

图片 14

图片 15

237

 暗许的追踪文件,提供的追踪信息还是很全的,从中我们能够找到登入人,操作新闻等,上边的截图只是包括的部分消息。大家能够使用该语句实行谐和的加工,然后拿走更管用的音信。

 暗中认可的跟踪文件,提供的追踪音信照旧很全的,从中大家能够找到登六人,操作音信等,上边包车型客车截图只是带有的有个别消息。大家能够利用该语句实行温馨的加工,然后拿走更管用的音讯。

Tells SQL Server to use correlated sub-queries in Non-ANSI standard backward compatibility mode.

图片 16

图片 17

242

--获取跟踪文件中前100行执行内容
SELECT TOP 100
 gt.[HostName] 
,gt.[ServerName] 
,gt.[DatabaseName] 
,gt.[SPID] 
,gt.[ObjectName] 
,gt.[objecttype] [ObjectTypeID] 
,sv.[subclass_name] [ObjectType] 
,e.[category_id] [CategoryID] 
,c.[Name] [Category] 
,gt.[EventClass] [EventID] 
,e.[Name] [EventName] 
,gt.[LoginName] 
,gt.[ApplicationName] 
,gt.[StartTime] 
,gt.[TextData] 
FROM fn_trace_gettable('E:dataDefaultFileMangerMSSQL10.MSSQLSERVERMSSQLLoglog_1267.trc', DEFAULT) gt 
LEFT JOIN sys.trace_subclass_values sv 
ON gt.[eventclass] = sv.[trace_event_id] AND sv.[subclass_value] = gt.[objecttype] 
INNER JOIN sys.trace_events e 
ON gt.[eventclass] = e.[trace_event_id] 
INNER JOIN sys.trace_categories c 
ON e.[category_id] = c.[category_id] 
WHERE gt.[spid] > 50 AND --50以内的spid为系统使用
    gt.[DatabaseName] = 'master' AND --根据DatabaseName过滤
    gt.[ObjectName] = 'fn_trace_getinfo' AND --根据objectname过滤
    e.[category_id]  = 5 AND --category 5表示对象,8表示安全
    e.[trace_event_id] = 46 
    --trace_event_id 
    --46表示Create对象(Object:Created),
    --47表示Drop对象(Object:Deleted),
    --93表示日志文件自动增长(Log File Auto Grow),
    --164表示Alter对象(Object:Altered),
    --20表示错误日志(Audit Login Failed)
ORDER BY [StartTime] DESC
--获取跟踪文件中前100行执行内容
SELECT TOP 100
 gt.[HostName] 
,gt.[ServerName] 
,gt.[DatabaseName] 
,gt.[SPID] 
,gt.[ObjectName] 
,gt.[objecttype] [ObjectTypeID] 
,sv.[subclass_name] [ObjectType] 
,e.[category_id] [CategoryID] 
,c.[Name] [Category] 
,gt.[EventClass] [EventID] 
,e.[Name] [EventName] 
,gt.[LoginName] 
,gt.[ApplicationName] 
,gt.[StartTime] 
,gt.[TextData] 
FROM fn_trace_gettable('E:dataDefaultFileMangerMSSQL10.MSSQLSERVERMSSQLLoglog_1267.trc', DEFAULT) gt 
LEFT JOIN sys.trace_subclass_values sv 
ON gt.[eventclass] = sv.[trace_event_id] AND sv.[subclass_value] = gt.[objecttype] 
INNER JOIN sys.trace_events e 
ON gt.[eventclass] = e.[trace_event_id] 
INNER JOIN sys.trace_categories c 
ON e.[category_id] = c.[category_id] 
WHERE gt.[spid] > 50 AND --50以内的spid为系统使用
    gt.[DatabaseName] = 'master' AND --根据DatabaseName过滤
    gt.[ObjectName] = 'fn_trace_getinfo' AND --根据objectname过滤
    e.[category_id]  = 5 AND --category 5表示对象,8表示安全
    e.[trace_event_id] = 46 
    --trace_event_id 
    --46表示Create对象(Object:Created),
    --47表示Drop对象(Object:Deleted),
    --93表示日志文件自动增长(Log File Auto Grow),
    --164表示Alter对象(Object:Altered),
    --20表示错误日志(Audit Login Failed)
ORDER BY [StartTime] DESC

Provides backward compatibility for correlated subqueries where non-ANSI-standard results are desired.

图片 18

图片 19

243

图片 20

图片 21

Provides backward compatibility for nullability behavior. When set, SQL Server has the same nullability violation behavior as that of a ver 4.2:

 小编创立了一张表,通过地点的追踪,能够跟踪到该记录的音讯,依照差别的过滤新闻,大家得以查询出到追踪的某部库的有个别表的改观新闻,富含:46创办(Created)、47删减(Deleted)、93文件自动增加音讯(Log File Auto Grow)、146修改(Alter)、20意味着错误日志(Login Failed)

 作者创设了一张表,通过地点的追踪,能够追踪到该记录的音讯,依据分化的过滤音信,我们得以查询出到追踪的某部库的有些表的改换消息,富含:46成立(Created)、47去除(Deleted)、93文本自动增进音讯(Log File Auto Grow)、146修改(Alter)、20代表错误日志(Login Failed)

  • Processing of the entire batch is terminated if the nullability error (inserting NULL into a NOT NULL field) can be detected at compile time.
  • Processing of offending row is skipped, but the command continues if the nullability violation is detected at run time.

 

 

Behavior of SQL Server is now more consistent because nullability checks are made at run time and a nullability violation results in the command terminating and the batch or transaction process continuing.

在生养意况中,以上多少个分类都以相比常用的,对定点部分标题标一定能够在找到丰富的凭证可循,举例某厮将数据库数据删除掉了还不承认等,那在那之中的Login Failed音讯,能够追踪出有那么顾客尝试登入过数据库,並且失败,假诺大范围的面世这种情景,那就要防卫骇客袭击了。

在生产景况中,以上多少个分类都以相比常用的,对一定部分主题素材的固化能够在找到丰盛的凭证可循,举个例子某厮将数据库数据删除掉了还不承认等,那其间的Login Failed音信,可以追踪出有那么客商尝试登录过数据库,况且失利,即使分布的产出这种处境,那将在堤防红客袭击了。

244

 

 

Disables checking for allowed interim constraint violations. By default, SQL Server checks for and allows interim constraint violations. An interim constraint violation is caused by a change that removes the violation such that the constraint is met, all within a single statement and transaction. SQL Server checks for interim constraint violations for self-referencing DELETE statements, INSERT, and multi-row UPDATE statements. This checking requires more work tables. With this trace flag you can disallow interim constraint violations, thus requiring fewer work tables.

理所必然,这里本人还可以够使用SQL Server自带的Profile工具,张开查看追踪文件中的内容。

当然,这里自身还足以行使SQL Server自带的Profile工具,展开查看追踪文件中的内容。

246

图片 22

图片 23

Derived or NULL columns must be explicitly named in a select…INTO or create view statement when not done they raise an error. This flag avoids that.

其一图像化的工具就比较纯熟了,直接展开进行筛选就可以了。

其一图像化的工具就相比明白了,间接展开实行筛选就足以了。

253

这种艺术周围不错,可是它也是有本人的久治不愈的病魔,我们来看:

这种措施周围不错,可是它也是有自己的后天不足,我们来看:

Prevents ad-hoc query plans to stay in cache.

1、那5个文本是滚动更新的,並且各种文件暗中认可最大都为20MB,而且未有提供改造的接口,所以当文件填充完之后就能够删除掉,所以会找不到太久从前的从头到尾的经过;

1、那5个文本是滚动更新的,并且种种文件默许最大都为20MB,况且未有提供更改的接口,所以当文件填充完现在就能够去除掉,所以会找不到太久此前的源委;

257

2、本人暗中同意的追踪,只是提供一些主要音讯的追踪,其中包含:auditing events,database events,error events,full text events,object creation,object deletion,object alteration,想要找到其它更详尽的剧情,此方法大概力不胜任;

2、本身暗中认可的追踪,只是提供部分器重音信的寻踪,在那之中囊括:auditing events,database events,error events,full text events,object creation,object deletion,object alteration,想要找到其他更详尽的剧情,此办法大概无计可施;

Will invoke a print algorithm on the XML output before returning it to make the XML result more readable.

3、在SQL Server2011后续版本的 Microsoft SQL Server 将去除该功用,改用扩张事件。

3、在SQL Server二〇一三后续版本的 Microsoft SQL Server 将去除该作用,改用增加事件。

260

 

 

Prints versioning information about extended stored procedure dynamic-link libraries (DLLs). For more information about __GetXpVersion(), seeCreating Extended Stored Procedures. Scope: global or session

二.自定义追踪新闻(Default Trace)

二.自定义追踪消息(Default Trace)

262

基于上面SQL Server自带的跟踪新闻有局地局限性,SQL Server为大家提供了自定义跟踪的接口,大家能够和睦定义追踪,丰富扩充方法。

依靠地点SQL Server自带的追踪消息有一部根据地限性,SQL Server为大家提供了自定义追踪的接口,我们得以本身定义追踪,丰硕增添方法。

SQL 7 – Trailing spaces are no longer truncated from literal strings in CASE statements.       KB 891116

动用如下系统存款和储蓄进度,我们得以创建自定义的Trace

利用如下系统存款和储蓄进度,我们得以创立自定义的Trace

302

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

Should be used with 310 to show the actual join ordering. Prints information about whether the statistics page is used, the actual selectivity (if available), and what SQL Server estimated the physical and logical I/O would be for the indexes.

@traceid  系统默许分配跟踪的ID号

@traceid  系统默许分配追踪的ID号

310

@options 内定为追踪设置的选项,系统暗中同意提供的多少个选用:

**@options **钦点为追踪设置的选项,系统暗中同意提供的多少个选取:

Prints information about join order. Index selection information is also available in a more readable format using SET SHOWPLAN_ALL, as described in the SET statement.

                  2代表当文件写满的时候,关闭当前追踪并创办新文件。

                  2表示当文件写满的时候,关闭当前跟踪并创设新文件。

320

                  4代表只要不能够将追踪写入文件,不管怎么原因导致,SQL Server则会停业。这些能够行使此选项,追踪难点

                  4代表假设不可能将追踪写入文件,不管怎么来头促成,SQL Server则会关闭。那么些能够运用此选项,追踪难点

Disables join-order heuristics used in ANSI joins. To see join-order heuristics use flag 310. SQL Server uses join-order heuristics to reduce the no’ of permutations when using the best join order.

                  8制订服务器发生的末尾5MB的追踪信息记录由服务器保存。

                  8制定服务器产生的最后5MB的追踪新闻记录由服务器保存。

323

@tracefile 追踪文件的渠道,这里能够是share的路线

@tracefile 追踪文件的门路,这里可以是share的门道

SQL 6.5 – Reports on the use of update statements using UPDATE in place. Shows a detailed description of the various update methods used.

@maxfilesize 追踪文件的轻重缓急,单位是MB,暗中认可不设置为5MB

@maxfilesize 跟踪文件的深浅,单位是MB,私下认可不安装为5MB

325

@stoptime 追踪甘休的光阴,利用它大家可以定期追踪甘休的日期

@stoptime 追踪甘休的年月,利用它大家能够定期追踪结束的日期

Prints information about the cost of using a non-clustered index or a sort to process an ORDER BY clause.

@filecount 暗中同意生产的追踪文件的数额,比方暗中同意的为5个,那就在第5个文件写完的时候进行覆盖第2个文本滚动

@filecount 暗中认可生产的追踪文件的数据,比如默许的为5个,那就在第5个文本写完的时候进行覆盖第2个公文滚动

326

 

 

Prints information about estimated & actual costs of sorts. Instructs server to use arithmetic averaging when calculating density instead of a geometric weighted average when updating statistics. Useful for building better stats when an index has skew on the leading column. Use only for updating the stats of a table/index with known skewed data.

比方大家能够利用如下脚本举行创办 

比如大家得以使用如下脚本实行创办 

330

图片 24

图片 25

Enables full output when using the SET SHOWPLAN_ALL option, which gives detailed information about joins.

--创建跟踪文件返回值
declare @rc int
--创建一个跟踪句柄
declare @TraceID int
--创建跟踪文件路径
declare @TraceFilePath nvarchar(500)
set @TraceFilePath=N'F:SQLTest'
--跟踪文件的大小
declare @maxfilesize bigint
set @maxfilesize=5
--设置停止的时间
declare @EndTime datetime
set @EndTime=null
--设置系统默认的操作
declare @options int
set @options=2
--设置默认滚动文件的数目
declare @filecount int
set @filecount=5

exec @rc=sp_trace_Create
@TraceID output,
@options,
@TraceFilePath,
@maxfilesize,
@EndTime,
@filecount
if(@rc=0)
select  @TraceID
--创建跟踪文件返回值
declare @rc int
--创建一个跟踪句柄
declare @TraceID int
--创建跟踪文件路径
declare @TraceFilePath nvarchar(500)
set @TraceFilePath=N'F:SQLTest'
--跟踪文件的大小
declare @maxfilesize bigint
set @maxfilesize=5
--设置停止的时间
declare @EndTime datetime
set @EndTime=null
--设置系统默认的操作
declare @options int
set @options=2
--设置默认滚动文件的数目
declare @filecount int
set @filecount=5

exec @rc=sp_trace_Create
@TraceID output,
@options,
@TraceFilePath,
@maxfilesize,
@EndTime,
@filecount
if(@rc=0)
select  @TraceID

342

图片 26

图片 27

Disables the costing of pseudo-merge joins, thus significantly reducing time spent on the parse for certain types of large, multi-table joins. One can also use SET FORCEPLAN ON to disable the costing of pseudo-merge joins because the query is forced to use the order specified in the FROM clause.

大家经过地点的追踪创制的进程,能够在系统自带的暗中同意的sys.traces中找到该追踪的周到
图片 28

大家经过地点的追踪成立的历程,能够在系统自带的私下认可的sys.traces中找到该追踪的留心
图片 29

345

select * from sys.traces
where id=2
select * from sys.traces
where id=2

Increase the accuracy of choice of optimum order when you join 6 or more tables.

图片 30

图片 31

506

通过下面的台本,大家曾经创立了二个新的追踪(trace),可是那几个追踪状态为0,也正是说还向来不运维,上面大家的手续正是要为这一个跟踪增添事件(event)

经过地点的台本,大家曾经成立了一个新的追踪(trace),但是这么些追踪状态为0,也等于说还平昔不运维,上边大家的步骤就是要为那么些跟踪增多事件(event)

Enforces SQL-92 standards regarding null values for comparisons between variables and parameters. Any comparison of variables and parameters that contain a NULL always results in a NULL.

 

 

610

本条也是应用SQL Server为我们提供的操作函数

本条也是运用SQL Server为大家提供的操作函数

SQL 10 – Enable the potential for minimal-logging when:

sp_trace_setevent [ @traceid = ] trace_id  
          , [ @eventid = ] event_id 
          , [ @columnid = ] column_id 
          , [ @on = ] on
sp_trace_setevent [ @traceid = ] trace_id  
          , [ @eventid = ] event_id 
          , [ @columnid = ] column_id 
          , [ @on = ] on
  • Bulk loading into an empty clustered index, with no nonclustered indexes
  • Bulk loading into a non-empty heap, with no nonclustered indexes

@traceid 要修改的追踪的 ID号

@traceid 要修改的追踪的 ID号

611

@eventid 要开发的事件的 ID

@eventid 要张开的平地风波的 ID

SQL 9 – When turned on, each lock escalation is recorded in the error log along with the SQL Server handle number.

@columnid 要为该事件增添的列的 ID

**@columnid **要为该事件增多的列的 ID

652

@on 代表事件境况

@on 表示事件情状

Disables read ahead for the server.

里面最重视的就是时间ID,那些是SQL Server为大家提供的一部分列的码表时间值,具体值能够参照联机丛书 sp_trace_setevent (Transact-SQL).aspx)

其间最要害的正是光阴ID,那些是SQL Server为咱们提供的局地列的码表时间值,具体值能够参见联机丛书 sp_trace_setevent (Transact-SQL).aspx)

653

那当中最常用的就是:

这里面最常用的正是:

Disables read ahead for the current connection.

事件号

事件名称

说明

10                 

RPC:Completed

在完成了远程过程调用 (RPC) 时发生。

11

RPC:Starting

在启动了 RPC 时发生。

12

SQL:BatchCompleted

在完成了 Transact-SQL 批处理时发生。

13

SQL:BatchStarting

在启动了 Transact-SQL 批处理时发生。

14

Audit Login

在用户成功登录到 SQL Server 时发生。

15

Audit Logout

在用户从 SQL Server 注销时发生。

16

Attention

在发生需要关注的事件(如客户端中断请求或客户端连接中断)时发生。

17

ExistingConnection

检测在启动跟踪前连接到 SQL Server 的用户的所有活动。

18

Audit Server Starts and Stops

在修改 SQL Server 服务状态时发生。

20

Audit Login Failed

指示试图从客户端登录到 SQL Server 失败。

21

EventLog

指示已将事件记录到 Windows 应用程序日志中。

22

ErrorLog

指示已将错误事件记录到 SQL Server 错误日志中。

23

Lock:Released

指示已释放某个资源(如页)的锁。

24

Lock:Acquired

指示获取了某个资源(如数据页)的锁。

25

Lock:Deadlock

指示两个并发事务由于试图获得对方事务拥有的资源的不兼容锁而发生了相互死锁。

26

Lock:Cancel

指示已取消获取资源锁(例如,由于死锁)。

27

Lock:Timeout

指示由于其他事务持有所需资源的阻塞锁而使对资源(例如页)锁的请求超时。 超时由 @@LOCK_TIMEOUT 函数确定,并可用 SET LOCK_TIMEOUT 语句设置。

28

Degree of Parallelism Event(7.0 插入)

在执行 SELECT、INSERT 或 UPDATE 语句之前发生。

33

Exception

指示 SQL Server 中出现了异常。

34

SP:CacheMiss

指示未在过程缓存中找到某个存储过程。

35

SP:CacheInsert

指示某个项被插入到过程缓存中。

36

SP:CacheRemove

指示从过程缓存中删除了某个项。

37

SP:Recompile

指示已重新编译存储过程。

38

SP:CacheHit

指示在过程缓存中找到了存储过程。

40

SQL:StmtStarting

在启动了 Transact-SQL 语句时发生。

41

SQL:StmtCompleted

在完成了 Transact-SQL 语句时发生。

42

SP:Starting

指示启动了存储过程。

43

SP:Completed

指示完成了存储过程。

44

SP:StmtStarting

指示已开始执行存储过程中的 Transact-SQL 语句。

45

SP:StmtCompleted

指示存储过程中的 Transact-SQL 语句已执行完毕。

46

Object:Created

指示 CREATE INDEX、CREATE TABLE 和 CREATE DATABASE 这样的语句已创建了一个对象。

47

Object:Deleted

指示已在 DROP INDEX 和 DROP TABLE 这样的语句中删除了对象。

50

SQL Transaction

跟踪 Transact-SQL BEGIN、COMMIT、SAVE 和 ROLLBACK TRANSACTION 语句。

51

Scan:Started

指示启动了表或索引扫描

52

Scan:Stopped

指示停止了表或索引扫描。

53

CursorOpen

指示 ODBC、OLE DB 或 DB-Library 在 Transact-SQL 语句中打开了一个游标。

54

TransactionLog

将事务写入事务日志时进行跟踪。

55

Hash Warning

指示未在缓冲分区进行的某一哈希操作(例如,哈希联接、哈希聚合、哈希 union 运算、哈希非重复)已恢复为替换计划。 发生此事件的原因可能是递归深度、数据扭曲、跟踪标记或位计数。

58

Auto Stats

指示发生了自动更新索引统计信息。

59

Lock:Deadlock Chain

为导致死锁的每个事件而生成。

60

Lock:Escalation

指示较细粒度的锁转换成了较粗粒度的锁(例如,页锁升级或转换为 TABLE 或 HoBT 锁)。

61

OLE DB Errors

指示发生了 OLE DB 错误。

67

Execution Warnings

指示在执行 SQL Server 语句或存储过程期间发生的任何警告。

68

Showplan Text (Unencoded)

显示所执行 Transact-SQL 语句的计划树。

69

Sort Warnings

指示不适合内存的排序操作。 不包括与创建索引有关的排序操作;只包括某查询内的排序操作(如 SELECT 语句中使用的 ORDER BY 子句)。

70

CursorPrepare

指示已准备了 ODBC、OLE DB 或 DB-Library 用于 Transact-SQL 语句的游标。

71

Prepare SQL

ODBC、OLE DB 或 DB-Library 已准备好了一个或多个要使用的 Transact-SQL 语句。

72

Exec Prepared SQL

ODBC、OLE DB 或 DB-Library 已执行了一个或多个准备好的 Transact-SQL 语句。

73

Unprepare SQL

ODBC、OLE DB 或 DB-Library 已撤消(删除)了一个或多个准备好的 Transact-SQL 语句。

74

CursorExecute

执行了先前由 ODBC、OLE DB 或 DB-Library 为 Transact-SQL 语句准备的游标。

75

CursorRecompile

由 ODBC 或 DB-Library 为 Transact-SQL 语句打开的游标已直接重新编译或由于架构更改而重新编译。

为 ANSI 和非 ANSI 游标触发。

76

CursorImplicitConversion

SQL Server 将 Transact-SQL 语句的游标从一种类型转换为另一种类型。

为 ANSI 和非 ANSI 游标触发。

77

CursorUnprepare

ODBC、OLE DB 或 DB-Library 撤消(删除)了准备好的 Transact-SQL 语句的游标。

78

CursorClose

关闭了先前由 ODBC、OLE DB 或 DB-Library 为 Transact-SQL 语句打开的游标。

79

Missing Column Statistics

可能曾经对优化器有用的列统计信息不可用。

80

Missing Join Predicate

正在执行没有联接谓词的查询。 这可能导致长时间运行查询。

81

Server Memory Change

SQL Server 内存的使用量已增加或减少了 1 MB 或最大服务器内存的 5%(两者中较大者)。

82-91

User Configurable (0-9)

用户定义的事件数据。

92

Data File Auto Grow

指示服务器已自动扩展了数据文件。

93

Log File Auto Grow

指示服务器已自动扩展了日志文件。

94

Data File Auto Shrink

指示服务器已自动收缩了数据文件。

95

Log File Auto Shrink

指示服务器已自动收缩了日志文件。

96

Showplan Text

显示来自查询优化器的 SQL 语句的查询计划树。 请注意,TextData 列不包含此事件的显示计划。

97

Showplan All

显示查询计划,并显示已执行的 SQL 语句的完整编译时详细信息。 请注意,TextData 列不包含此事件的显示计划。

98

Showplan Statistics Profile

显示查询计划,并显示已执行的 SQL 语句的完整运行时详细信息。 请注意,TextData 列不包含此事件的显示计划。

100

RPC Output Parameter

生成每个 RPC 的参数的输出值。

108

Audit Add Login to Server Role Event

在从固定服务器角色添加或删除登录时发生;针对 sp_addsrvrolemember 和 sp_dropsrvrolemember。

112

Audit App Role Change Password Event

在更改应用程序角色的密码时发生。

113

Audit Statement Permission Event

在使用语句权限(如 CREATE TABLE)时发生。

114

Audit Schema Object Access Event

在成功或未成功使用了对象权限(如 SELECT)时发生。

115

Audit Backup/Restore Event

在发出 BACKUP 或 RESTORE 命令时发生。

116

Audit DBCC Event

在发出 DBCC 命令时发生。

117

Audit Change Audit Event

在修改审核跟踪时发生。

118

Audit Object Derived Permission Event

在发出 CREATE、ALTER 和 DROP 对象命令时发生。

119

OLEDB Call Event

为分布式查询和远程存储过程调用 OLE DB 访问接口时发生。

120

OLEDB QueryInterface Event

为分布式查询和远程存储过程调用 OLE DB QueryInterface 时发生。

121

OLEDB DataRead Event

对 OLE DB 访问接口调用数据请求时发生。

122

Showplan XML

在执行 SQL 语句时发生。 包括该事件可以标识 Showplan 运算符。 每个事件都存储在格式正确的 XML 文档中。 请注意,此事件的 Binary 列包含已编码的显示计划。 使用 SQL Server Profiler 可打开跟踪并查看显示计划。

123

SQL:FullTextQuery

执行全文查询时发生。

124

Broker:Conversation

报告 Service Broker 会话的进度。

125

Deprecation Announcement

使用将从 SQL Server 的未来版本中删除的功能时发生。

126

Deprecation Final Support

使用将从 SQL Server 的下一个主版本中删除的功能时发生。

127

Exchange Spill Event

在 tempdb 数据库临时写入并行查询计划中的通信缓冲区时发生。

128

Audit Database Management Event

创建、更改或删除数据库时发生。

129

Audit Database Object Management Event

对数据库对象(如架构)执行 CREATE、ALTER 或 DROP 语句时发生。

130

Audit Database Principal Management Event

创建、更改或删除数据库的主体(如用户)时发生。

131

Audit Schema Object Management Event

创建、更改或删除服务器对象时发生。

132

Audit Server Principal Impersonation Event

服务器范围中发生模拟(如 EXECUTE AS LOGIN)时发生。

133

Audit Database Principal Impersonation Event

数据库范围中发生模拟(如 EXECUTE AS USER 或 SETUSER)时发生。

134

Audit Server Object Take Ownership Event

服务器范围中的对象的所有者发生更改时发生。

135

Audit Database Object Take Ownership Event

数据库范围中的对象的所有者发生更改时发生。

136

Broker:Conversation Group

Service Broker 创建新的会话组或删除现有会话组时发生。

137

Blocked Process Report

进程被阻塞的时间超过了指定的时间时发生。 不包括系统进程或正在等待未发现死锁的资源的进程。 请使用 sp_configure 来配置生成报表时的阈值和频率。

138

Broker:Connection

报告 Service Broker 管理的传输连接的状态。

139

Broker:Forwarded Message Sent

Service Broker 转发消息时发生。

140

Broker:Forwarded Message Dropped

Service Broker 删除用于转发的消息时发生。

141

Broker:Message Classify

Service Broker 确定消息的路由时发生。

142

Broker:Transmission

指示在 Service Broker 传输层中发生了错误。 错误号和状态值指示了错误源。

143

Broker:Queue Disabled

指示检测到有害消息,这是由于在 Service Broker 队列中有五个连续的事务回滚。 该事件包含数据库 ID 和包含有害消息的队列的队列 ID。

146

Showplan XML Statistics Profile

在执行 SQL 语句时发生。 标识 Showplan 运算符,并显示完整的编译时数据。 请注意,此事件的 Binary 列包含已编码的显示计划。 使用 SQL Server Profiler 可打开跟踪并查看显示计划。

148

Deadlock Graph

取消获取锁的尝试时发生,这是因为该尝试是死锁的一部分,并且被选为死锁牺牲品。 提供死锁的 XML 说明。

149

Broker:Remote Message Acknowledgement

Service Broker 发送或收到消息确认时发生。

150

Trace File Close

跟踪文件在回滚期间关闭时发生。

152

Audit Change Database Owner

使用 ALTER AUTHORIZATION 更改数据库的所有者,并且检查执行该操作的权限时发生。

153

Audit Schema Object Take Ownership Event

使用 ALTER AUTHORIZATION 来将所有者分配给对象,并且检查执行该操作的权限时发生。

155

FT:Crawl Started

全文爬网(填充)开始时发生。 用于检查工作线程任务是否拾取了爬网请求。

156

FT:Crawl Stopped

全文爬网(填充)停止时发生。 爬网成功完成或发生错误时停止。

157

FT:Crawl Aborted

在全文爬网过程中遇到异常时发生。 通常导致全文爬网停止。

158

Audit Broker Conversation

报告与 Service Broker 对话安全性相关的审核消息。

159

Audit Broker Login

报告与 Service Broker 传输安全性相关的审核消息。

160

Broker:Message Undeliverable

Service Broker 无法保留收到的消息时发生,该消息应当已传递给某个服务。

161

Broker:Corrupted Message

Service Broker 收到损坏的消息时发生。

162

User Error Message

显示出现错误或异常时用户看到的错误消息。

163

Broker:Activation

队列监视器启动激活存储过程时,发送 QUEUE_ACTIVATION 通知时,或者队列监视器启动的激活存储过程退出时发生。

164

Object:Altered

数据库对象更改时发生。

165

Performance statistics

将经过编译的查询计划第一次缓存、重新编译或从计划缓存中删除时发生。

166

SQL:StmtRecompile

发生语句级别的重新编译时发生。

167

Database Mirroring State Change

镜像数据库的状态更改时发生。

168

Showplan XML For Query Compile

编译 SQL 语句时发生。 显示完整的编译时数据。 请注意,此事件的 Binary 列包含已编码的显示计划。 使用 SQL Server Profiler 可打开跟踪并查看显示计划。

169

Showplan All For Query Compile

编译 SQL 语句时发生。 显示完整的编译时数据。 用于标识 Showplan 运算符。

170

Audit Server Scope GDR Event

指示在服务器范围中发生了权限的授予、拒绝或撤消事件(如创建登录)。

171

Audit Server Object GDR Event

指示发生了对架构对象(如表或函数)的授予、拒绝或撤消事件。

172

Audit Database Object GDR Event

指示发生了对数据库对象(如程序集和架构)的授予、拒绝或撤消事件。

173

Audit Server Operation Event

使用了安全审核操作(如使用了更改设置、资源、外部访问或授权)时发生。

175

Audit Server Alter Trace Event

检查语句的 ALTER TRACE 权限时发生。

176

Audit Server Object Management Event

创建、更改或删除服务器对象时发生。

177

Audit Server Principal Management Event

创建、更改或删除了服务器主体时发生。

178

Audit Database Operation Event

发生数据库操作(如检查或订阅查询通知)时发生。

180

Audit Database Object Access Event

访问数据库对象(如架构)时发生。

181

TM: Begin Tran starting

BEGIN TRANSACTION 请求开始时发生。

182

TM: Begin Tran completed

BEGIN TRANSACTION 请求完成时发生。

183

TM: Promote Tran starting

PROMOTE TRANSACTION 请求开始时发生。

184

TM: Promote Tran completed

PROMOTE TRANSACTION 请求完成时发生。

185

TM: Commit Tran starting

COMMIT TRANSACTION 请求开始时发生。

186

TM: Commit Tran completed

COMMIT TRANSACTION 请求完成时发生。

187

TM: Rollback Tran starting

ROLLBACK TRANSACTION 请求开始时发生。

188

TM: Rollback Tran completed

ROLLBACK TRANSACTION 请求完成时发生。

189

Lock:Timeout (timeout > 0)

对资源(如页)的锁请求超时时发生。

190

Progress Report: Online Index Operation

报告生成进程正在运行时,联机索引生成操作的进度。

191

TM: Save Tran starting

SAVE TRANSACTION 请求开始时发生。

192

TM: Save Tran completed

SAVE TRANSACTION 请求完成时发生。

193

Background Job Error

后台作业不正常终止时发生。

194

OLEDB Provider Information

分布式查询运行并收集对应于提供程序连接的信息时发生。

195

Mount Tape

收到磁带装入请求时发生。

196

Assembly Load

发生加载 CLR 程序集的请求时发生。

198

XQuery Static Type

执行 XQuery 表达式时发生。 此事件类提供静态类型的 XQuery 表达式。

199

QN: subscription

无法订阅查询注册时发生。 TextData 列包含事件的有关信息。

200

QN: parameter table

有关活动订阅的信息存储在内部参数表中。 在创建或删除参数表时发生该事件类。 通常,重新启动数据库时将创建或删除这些表。 TextData 列包含事件的有关信息。

201

QN: template

查询模板代表订阅查询的类。 通常,除参数值以外,相同类中的查询是相同的。 当新的订阅请求针对已存在的类 (Match)、新类 (Create) 或 Drop 类(指示清除没有活动订阅的查询类的模板)时,发生此事件类。 TextData 列包含事件的有关信息。

202

QN: dynamics

跟踪查询通知的内部活动。 TextData 列包含事件的有关信息。

213

Database Suspect Data Page

指示何时将某页添加到 msdb 的 suspect_pages 表。

214

CPU threshold exceeded

指示资源调控器检测到查询超过 CPU 阈值 (REQUEST_MAX_CPU_TIME_SEC) 的时间。

215

指示 LOGON 触发器或资源调控器分类器函数开始执行的时间。

指示 LOGON 触发器或资源调控器分类器函数开始执行的时间。

216

PreConnect:Completed

指示 LOGON 触发器或资源调控器分类器函数完成执行的时间。

217

Plan Guide Successful

指示 SQL Server 已成功为计划指南中包含的查询或批处理生成执行计划。

218

Plan Guide Unsuccessful

指示 SQL Server 无法为包含计划指南的查询或批处理生成执行计划。 SQL Server 尝试在不应用计划指南的情况下为此查询或批处理生成执行计划。 无效的计划指南可能是导致此问题的原因。 您可以通过使用 sys.fn_validate_plan_guide 系统函数验证该计划指南。

事件号

事件名称

说明

10                 

RPC:Completed

在完成了远程过程调用 (RPC) 时发生。

11

RPC:Starting

在启动了 RPC 时发生。

12

SQL:BatchCompleted

在完成了 Transact-SQL 批处理时发生。

13

SQL:BatchStarting

在启动了 Transact-SQL 批处理时发生。

14

Audit Login

在用户成功登录到 SQL Server 时发生。

15

Audit Logout

在用户从 SQL Server 注销时发生。

16

Attention

在发生需要关注的事件(如客户端中断请求或客户端连接中断)时发生。

17

ExistingConnection

检测在启动跟踪前连接到 SQL Server 的用户的所有活动。

18

Audit Server Starts and Stops

在修改 SQL Server 服务状态时发生。

20

Audit Login Failed

指示试图从客户端登录到 SQL Server 失败。

21

EventLog

指示已将事件记录到 Windows 应用程序日志中。

22

ErrorLog

指示已将错误事件记录到 SQL Server 错误日志中。

23

Lock:Released

指示已释放某个资源(如页)的锁。

24

Lock:Acquired

指示获取了某个资源(如数据页)的锁。

25

Lock:Deadlock

指示两个并发事务由于试图获得对方事务拥有的资源的不兼容锁而发生了相互死锁。

26

Lock:Cancel

指示已取消获取资源锁(例如,由于死锁)。

27

Lock:Timeout

指示由于其他事务持有所需资源的阻塞锁而使对资源(例如页)锁的请求超时。 超时由 @@LOCK_TIMEOUT 函数确定,并可用 SET LOCK_TIMEOUT 语句设置。

28

Degree of Parallelism Event(7.0 插入)

在执行 SELECT、INSERT 或 UPDATE 语句之前发生。

33

Exception

指示 SQL Server 中出现了异常。

34

SP:CacheMiss

指示未在过程缓存中找到某个存储过程。

35

SP:CacheInsert

指示某个项被插入到过程缓存中。

36

SP:CacheRemove

指示从过程缓存中删除了某个项。

37

SP:Recompile

指示已重新编译存储过程。

38

SP:CacheHit

指示在过程缓存中找到了存储过程。

40

SQL:StmtStarting

在启动了 Transact-SQL 语句时发生。

41

SQL:StmtCompleted

在完成了 Transact-SQL 语句时发生。

42

SP:Starting

指示启动了存储过程。

43

SP:Completed

指示完成了存储过程。

44

SP:StmtStarting

指示已开始执行存储过程中的 Transact-SQL 语句。

45

SP:StmtCompleted

指示存储过程中的 Transact-SQL 语句已执行完毕。

46

Object:Created

指示 CREATE INDEX、CREATE TABLE 和 CREATE DATABASE 这样的语句已创建了一个对象。

47

Object:Deleted

指示已在 DROP INDEX 和 DROP TABLE 这样的语句中删除了对象。

50

SQL Transaction

跟踪 Transact-SQL BEGIN、COMMIT、SAVE 和 ROLLBACK TRANSACTION 语句。

51

Scan:Started

指示启动了表或索引扫描

52

Scan:Stopped

指示停止了表或索引扫描。

53

CursorOpen

指示 ODBC、OLE DB 或 DB-Library 在 Transact-SQL 语句中打开了一个游标。

54

TransactionLog

将事务写入事务日志时进行跟踪。

55

Hash Warning

指示未在缓冲分区进行的某一哈希操作(例如,哈希联接、哈希聚合、哈希 union 运算、哈希非重复)已恢复为替换计划。 发生此事件的原因可能是递归深度、数据扭曲、跟踪标记或位计数。

58

Auto Stats

指示发生了自动更新索引统计信息。

59

Lock:Deadlock Chain

为导致死锁的每个事件而生成。

60

Lock:Escalation

指示较细粒度的锁转换成了较粗粒度的锁(例如,页锁升级或转换为 TABLE 或 HoBT 锁)。

61

OLE DB Errors

指示发生了 OLE DB 错误。

67

Execution Warnings

指示在执行 SQL Server 语句或存储过程期间发生的任何警告。

68

Showplan Text (Unencoded)

显示所执行 Transact-SQL 语句的计划树。

69

Sort Warnings

指示不适合内存的排序操作。 不包括与创建索引有关的排序操作;只包括某查询内的排序操作(如 SELECT 语句中使用的 ORDER BY 子句)。

70

CursorPrepare

指示已准备了 ODBC、OLE DB 或 DB-Library 用于 Transact-SQL 语句的游标。

71

Prepare SQL

ODBC、OLE DB 或 DB-Library 已准备好了一个或多个要使用的 Transact-SQL 语句。

72

Exec Prepared SQL

ODBC、OLE DB 或 DB-Library 已执行了一个或多个准备好的 Transact-SQL 语句。

73

Unprepare SQL

ODBC、OLE DB 或 DB-Library 已撤消(删除)了一个或多个准备好的 Transact-SQL 语句。

74

CursorExecute

执行了先前由 ODBC、OLE DB 或 DB-Library 为 Transact-SQL 语句准备的游标。

75

CursorRecompile

由 ODBC 或 DB-Library 为 Transact-SQL 语句打开的游标已直接重新编译或由于架构更改而重新编译。

为 ANSI 和非 ANSI 游标触发。

76

CursorImplicitConversion

SQL Server 将 Transact-SQL 语句的游标从一种类型转换为另一种类型。

为 ANSI 和非 ANSI 游标触发。

77

CursorUnprepare

ODBC、OLE DB 或 DB-Library 撤消(删除)了准备好的 Transact-SQL 语句的游标。

78

CursorClose

关闭了先前由 ODBC、OLE DB 或 DB-Library 为 Transact-SQL 语句打开的游标。

79

Missing Column Statistics

可能曾经对优化器有用的列统计信息不可用。

80

Missing Join Predicate

正在执行没有联接谓词的查询。 这可能导致长时间运行查询。

81

Server Memory Change

SQL Server 内存的使用量已增加或减少了 1 MB 或最大服务器内存的 5%(两者中较大者)。

82-91

User Configurable (0-9)

用户定义的事件数据。

92

Data File Auto Grow

指示服务器已自动扩展了数据文件。

93

Log File Auto Grow

指示服务器已自动扩展了日志文件。

94

Data File Auto Shrink

指示服务器已自动收缩了数据文件。

95

Log File Auto Shrink

指示服务器已自动收缩了日志文件。

96

Showplan Text

显示来自查询优化器的 SQL 语句的查询计划树。 请注意,TextData 列不包含此事件的显示计划。

97

Showplan All

显示查询计划,并显示已执行的 SQL 语句的完整编译时详细信息。 请注意,TextData 列不包含此事件的显示计划。

98

Showplan Statistics Profile

显示查询计划,并显示已执行的 SQL 语句的完整运行时详细信息。 请注意,TextData 列不包含此事件的显示计划。

100

RPC Output Parameter

生成每个 RPC 的参数的输出值。

108

Audit Add Login to Server Role Event

在从固定服务器角色添加或删除登录时发生;针对 sp_addsrvrolemember 和 sp_dropsrvrolemember

112

Audit App Role Change Password Event

在更改应用程序角色的密码时发生。

113

Audit Statement Permission Event

在使用语句权限(如 CREATE TABLE)时发生。

114

Audit Schema Object Access Event

在成功或未成功使用了对象权限(如 SELECT)时发生。

115

Audit Backup/Restore Event

在发出 BACKUP 或 RESTORE 命令时发生。

116

Audit DBCC Event

在发出 DBCC 命令时发生。

117

Audit Change Audit Event

在修改审核跟踪时发生。

118

Audit Object Derived Permission Event

在发出 CREATE、ALTER 和 DROP 对象命令时发生。

119

OLEDB Call Event

为分布式查询和远程存储过程调用 OLE DB 访问接口时发生。

120

OLEDB QueryInterface Event

为分布式查询和远程存储过程调用 OLE DB QueryInterface 时发生。

121

OLEDB DataRead Event

对 OLE DB 访问接口调用数据请求时发生。

122

Showplan XML

在执行 SQL 语句时发生。 包括该事件可以标识 Showplan 运算符。 每个事件都存储在格式正确的 XML 文档中。 请注意,此事件的 Binary 列包含已编码的显示计划。 使用 SQL Server Profiler 可打开跟踪并查看显示计划。

123

SQL:FullTextQuery

执行全文查询时发生。

124

Broker:Conversation

报告 Service Broker 会话的进度。

125

Deprecation Announcement

使用将从 SQL Server 的未来版本中删除的功能时发生。

126

Deprecation Final Support

使用将从 SQL Server 的下一个主版本中删除的功能时发生。

127

Exchange Spill Event

在 tempdb 数据库临时写入并行查询计划中的通信缓冲区时发生。

128

Audit Database Management Event

创建、更改或删除数据库时发生。

129

Audit Database Object Management Event

对数据库对象(如架构)执行 CREATE、ALTER 或 DROP 语句时发生。

130

Audit Database Principal Management Event

创建、更改或删除数据库的主体(如用户)时发生。

131

Audit Schema Object Management Event

创建、更改或删除服务器对象时发生。

132

Audit Server Principal Impersonation Event

服务器范围中发生模拟(如 EXECUTE AS LOGIN)时发生。

133

Audit Database Principal Impersonation Event

数据库范围中发生模拟(如 EXECUTE AS USER 或 SETUSER)时发生。

134

Audit Server Object Take Ownership Event

服务器范围中的对象的所有者发生更改时发生。

135

Audit Database Object Take Ownership Event

数据库范围中的对象的所有者发生更改时发生。

136

Broker:Conversation Group

Service Broker 创建新的会话组或删除现有会话组时发生。

137

Blocked Process Report

进程被阻塞的时间超过了指定的时间时发生。 不包括系统进程或正在等待未发现死锁的资源的进程。 请使用 sp_configure 来配置生成报表时的阈值和频率。

138

Broker:Connection

报告 Service Broker 管理的传输连接的状态。

139

Broker:Forwarded Message Sent

Service Broker 转发消息时发生。

140

Broker:Forwarded Message Dropped

Service Broker 删除用于转发的消息时发生。

141

Broker:Message Classify

Service Broker 确定消息的路由时发生。

142

Broker:Transmission

指示在 Service Broker 传输层中发生了错误。 错误号和状态值指示了错误源。

143

Broker:Queue Disabled

指示检测到有害消息,这是由于在 Service Broker 队列中有五个连续的事务回滚。 该事件包含数据库 ID 和包含有害消息的队列的队列 ID。

146

Showplan XML Statistics Profile

在执行 SQL 语句时发生。 标识 Showplan 运算符,并显示完整的编译时数据。 请注意,此事件的 Binary 列包含已编码的显示计划。 使用 SQL Server Profiler 可打开跟踪并查看显示计划。

148

Deadlock Graph

取消获取锁的尝试时发生,这是因为该尝试是死锁的一部分,并且被选为死锁牺牲品。 提供死锁的 XML 说明。

149

Broker:Remote Message Acknowledgement

Service Broker 发送或收到消息确认时发生。

150

Trace File Close

跟踪文件在回滚期间关闭时发生。

152

Audit Change Database Owner

使用 ALTER AUTHORIZATION 更改数据库的所有者,并且检查执行该操作的权限时发生。

153

Audit Schema Object Take Ownership Event

使用 ALTER AUTHORIZATION 来将所有者分配给对象,并且检查执行该操作的权限时发生。

155

FT:Crawl Started

全文爬网(填充)开始时发生。 用于检查工作线程任务是否拾取了爬网请求。

156

FT:Crawl Stopped

全文爬网(填充)停止时发生。 爬网成功完成或发生错误时停止。

157

FT:Crawl Aborted

在全文爬网过程中遇到异常时发生。 通常导致全文爬网停止。

158

Audit Broker Conversation

报告与 Service Broker 对话安全性相关的审核消息。

159

Audit Broker Login

报告与 Service Broker 传输安全性相关的审核消息。

160

Broker:Message Undeliverable

Service Broker 无法保留收到的消息时发生,该消息应当已传递给某个服务。

161

Broker:Corrupted Message

Service Broker 收到损坏的消息时发生。

162

User Error Message

显示出现错误或异常时用户看到的错误消息。

163

Broker:Activation

队列监视器启动激活存储过程时,发送 QUEUE_ACTIVATION 通知时,或者队列监视器启动的激活存储过程退出时发生。

164

Object:Altered

数据库对象更改时发生。

165

Performance statistics

将经过编译的查询计划第一次缓存、重新编译或从计划缓存中删除时发生。

166

SQL:StmtRecompile

发生语句级别的重新编译时发生。

167

Database Mirroring State Change

镜像数据库的状态更改时发生。

168

Showplan XML For Query Compile

编译 SQL 语句时发生。 显示完整的编译时数据。 请注意,此事件的 Binary 列包含已编码的显示计划。 使用 SQL Server Profiler 可打开跟踪并查看显示计划。

169

Showplan All For Query Compile

编译 SQL 语句时发生。 显示完整的编译时数据。 用于标识 Showplan 运算符。

170

Audit Server Scope GDR Event

指示在服务器范围中发生了权限的授予、拒绝或撤消事件(如创建登录)。

171

Audit Server Object GDR Event

指示发生了对架构对象(如表或函数)的授予、拒绝或撤消事件。

172

Audit Database Object GDR Event

指示发生了对数据库对象(如程序集和架构)的授予、拒绝或撤消事件。

173

Audit Server Operation Event

使用了安全审核操作(如使用了更改设置、资源、外部访问或授权)时发生。

175

Audit Server Alter Trace Event

检查语句的 ALTER TRACE 权限时发生。

176

Audit Server Object Management Event

创建、更改或删除服务器对象时发生。

177

Audit Server Principal Management Event

创建、更改或删除了服务器主体时发生。

178

Audit Database Operation Event

发生数据库操作(如检查或订阅查询通知)时发生。

180

Audit Database Object Access Event

访问数据库对象(如架构)时发生。

181

TM: Begin Tran starting

BEGIN TRANSACTION 请求开始时发生。

182

TM: Begin Tran completed

BEGIN TRANSACTION 请求完成时发生。

183

TM: Promote Tran starting

PROMOTE TRANSACTION 请求开始时发生。

184

TM: Promote Tran completed

PROMOTE TRANSACTION 请求完成时发生。

185

TM: Commit Tran starting

COMMIT TRANSACTION 请求开始时发生。

186

TM: Commit Tran completed

COMMIT TRANSACTION 请求完成时发生。

187

TM: Rollback Tran starting

ROLLBACK TRANSACTION 请求开始时发生。

188

TM: Rollback Tran completed

ROLLBACK TRANSACTION 请求完成时发生。

189

Lock:Timeout (timeout > 0)

对资源(如页)的锁请求超时时发生。

190

Progress Report: Online Index Operation

报告生成进程正在运行时,联机索引生成操作的进度。

191

TM: Save Tran starting

SAVE TRANSACTION 请求开始时发生。

192

TM: Save Tran completed

SAVE TRANSACTION 请求完成时发生。

193

Background Job Error

后台作业不正常终止时发生。

194

OLEDB Provider Information

分布式查询运行并收集对应于提供程序连接的信息时发生。

195

Mount Tape

收到磁带装入请求时发生。

196

Assembly Load

发生加载 CLR 程序集的请求时发生。

198

XQuery Static Type

执行 XQuery 表达式时发生。 此事件类提供静态类型的 XQuery 表达式。

199

QN: subscription

无法订阅查询注册时发生。 TextData 列包含事件的有关信息。

200

QN: parameter table

有关活动订阅的信息存储在内部参数表中。 在创建或删除参数表时发生该事件类。 通常,重新启动数据库时将创建或删除这些表。 TextData 列包含事件的有关信息。

201

QN: template

查询模板代表订阅查询的类。 通常,除参数值以外,相同类中的查询是相同的。 当新的订阅请求针对已存在的类 (Match)、新类 (Create) 或 Drop 类(指示清除没有活动订阅的查询类的模板)时,发生此事件类。 TextData 列包含事件的有关信息。

202

QN: dynamics

跟踪查询通知的内部活动。 TextData 列包含事件的有关信息。

213

Database Suspect Data Page

指示何时将某页添加到 msdb 的 suspect_pages 表。

214

CPU threshold exceeded

指示资源调控器检测到查询超过 CPU 阈值 (REQUEST_MAX_CPU_TIME_SEC) 的时间。

215

指示 LOGON 触发器或资源调控器分类器函数开始执行的时间。

指示 LOGON 触发器或资源调控器分类器函数开始执行的时间。

216

PreConnect:Completed

指示 LOGON 触发器或资源调控器分类器函数完成执行的时间。

217

Plan Guide Successful

指示 SQL Server 已成功为计划指南中包含的查询或批处理生成执行计划。

218

Plan Guide Unsuccessful

指示 SQL Server 无法为包含计划指南的查询或批处理生成执行计划。 SQL Server 尝试在不应用计划指南的情况下为此查询或批处理生成执行计划。 无效的计划指南可能是导致此问题的原因。 您可以通过使用 sys.fn_validate_plan_guide 系统函数验证该计划指南。

661

 

 

Disables the ghost record removal process. A ghost record is the result of a delete operation. When you delete a record, the deleted record is kept as a ghost record. Later, the deleted record is purged by the ghost record removal process. When you disable this process, the deleted record is not purged. Therefore, the space that the deleted record consumes is not freed. This behavior affects space consumption and the performance of scan operations. SCOPE: Global. If you turn off this trace flag, the ghost record removal process works correctly. KB 920093

上述的追踪事件中,基本包括了SQL Server中所能做的别样操作,我们得以依照自个儿须求开展定义,当大家得以本着平日平常遇上的有的主题素材实行固定,举个例子:死锁、等待、登陆败北等等吧...当然也得以追踪某人的有所行为,这里我们来定义多少个来探望

上述的追踪事件中,基本包涵了SQL Server中所能做的别的操作,大家得以依据本人索要张开定义,当大家能够针对普通平常遭遇的一些标题开展一定,比方:死锁、等待、登陆失利等等吧...当然也能够追踪某一个人的有着行为举止,这里大家来定义多少个来探视

698

 

 

SQL 9 – Performance of INSERT operations against a table with an identity column may be slow when compared to SQL 8. KB 940545

咱俩定义追踪全体语句批量操作的寻踪,从上边表大家可以查找到为12,13

大家定义跟踪全数语句批量操作的寻踪,从地点表我们得以查找到为12,13

699

exec sp_trace_setevent 2,12,1,1
exec sp_trace_setevent 2,13,1,1
exec sp_trace_setevent 2,12,1,1
exec sp_trace_setevent 2,13,1,1

Turn off transaction logging for the entire SQL dataserver.

 

 

806

通过如下存款和储蓄进度,将大家自定的寻踪运营

因此如下存款和储蓄进程,将大家自定的追踪运转

Cause 'DBCC-style' page auditing to be performed whenever a database page is read into the buffer pool. This is useful to catch cases where pages are being corrupted in memory and then written out to disk with a new page checksum. When they're read back in the checksum will look correct, but the page is corrupt (because of the previous memory corruption). This page auditing goes someway to catching this - especially on non-Enterprise Edition systems that don't have the 'checksum sniffer'.

--设置跟踪状态以启动
exec sp_trace_setstatus @TraceID,1
--设置跟踪状态以启动
exec sp_trace_setstatus @TraceID,1

809

图片 32

图片 33

SQL 8 – Limits the amount of Lazy write activity.

迄今,大家新建的寻踪已经开首运营了,大家得以应用方面包车型客车措施,来查阅大家调换的追踪文件了,其实大部分时候,我们都以运用此种方法设置好”圈套“,等待鱼儿上网

由来,大家新建的寻踪已经开头运营了,大家能够利用方面包车型的士主意,来查看大家转移的寻踪文件了,其实好多时候,大家都是采用此种方法设置好”圈套“,等待鱼儿上网

815

比方死锁查找,CPU消耗高,IO值高的这么些语句....

诸如死锁查找,CPU消耗高,IO值高的那二个语句....

SQL 8/9 – Enables latch enforcement. SQL Server 8 (with service pack 4) and SQL Server 9 can perform latch enforcement for data pages found in the buffer pool cache. Latch enforcement changes the virtual memory protection state while database page status changes from "clean" to "dirty" ("dirty" means modified through INSERT, UPDATE or DELETE operation). If an attempt is made to modify a data page while latch enforcement is set, it causes an exception and creates a mini-dump in SQL Server installation's LOG directory. Microsoft support can examine the contents of such mini-dump to determine the cause of the exception. In order to modify the data page the connection must first acquire a modification latch. Once the data modification latch is acquired the page protection is changed to read-write. Once the modification latch is released the page protection changes back to read-only.

图片 34

图片 35

818

 

 

SQL 8 - Enables in memory ring buffer used to track last 2048 successful write operations.

我们能够动用如下语句,查找跟踪文件的消息

我们得以应用如下语句,查找追踪文件的消息

828

--查看跟踪文件以表显示
select * from ::fn_trace_gettable('F:SQLTest.trc',1)
--查看跟踪文件以表显示
select * from ::fn_trace_gettable('F:SQLTest.trc',1)

SQL 8 - When enabled checkpoint ignores the recovery interval target and keeps steady I/O otherwise it uses recovery interval setting as a target for the length of time that checkpoint will take – KB 906121.

图片 36

图片 37

830

将我们刚刚的具备操作,已经追踪出来了。

将大家刚刚的具备操作,已经追踪出来了。

SQL 9 – Disable the reporting of CPU Drift errors in the SQL Server errorlog like SQL Server has encountered 2 occurrence(s) of I/O requests taking longer than 15 seconds to complete

 

 

831

透过如下命令进行追踪的闭馆

通过如下命令实行追踪的关闭

Protect unchanged pages in the buffer pool to catch memory corruptions.

--设置跟踪状态以停止
exec sp_trace_setstatus @TraceID,0
--设置跟踪状态以停止
exec sp_trace_setstatus @TraceID,0

834

因而如下命令进行追踪的删除

经过如下命令举办追踪的删减

SQL 8 – Causes SQL Server to use Windows large-page allocations for the memory that is allocated for the buffer pool. The page size varies depending on the hardware platform, but the page size may be from 2 MB to 16 MB. Large pages are allocated at startup and are kept throughout the lifetime of the process. Trace flag 834 improves performance by increasing the efficiency of the translation look-aside buffer (TLB) in the CPU. Applies only to 64-bit versions & you should have the Lock pages in memory right granted to turn this on. It may prevent the server from starting if memory is fragmented and large pages cannot be allocated. Therefore its better suited dedicated hosts. Scope STARTUP.

--从系统中移除跟踪
exec sp_trace_setstatus @TraceID,2
--从系统中移除跟踪
exec sp_trace_setstatus @TraceID,2

Details - http://msdn2.microsoft.com/en-us/library/aa366720.aspx / 

我们知晓在SQL Server默许的追踪文件在实例重启时候,都会收敛,所以大家得以因而如下方法化解,保险在每一趟实例重新开动的时候都会施行该追踪

我们通晓在SQL Server默许的追踪文件在实例重启时候,都会消退,所以大家得以由此如下方法消除,保障在每回实例重新起动的时候都会奉行该追踪

835

图片 38

图片 39

SQL 9 / 10 – On 64 bit SQL Server it turns off Lock pages in memory.

--新建追踪的存储过程
use master
go
create proc StartBlackBoxTrace
as
begin
    --默认开启追踪所有的SQL 执行语句,文件文件路径为默认
    DECLARE @TraceID int
    DECLARE @MaxFileSize bigint
    SET @MaxFileSize=25
    EXEC SP_TRACE_CREATE
    @TraceID OUTPUT,
    8,
    NULL,
    @MaxFileSize
    EXEC SP_TRACE_SETSTATUS @TraceID,1
END

--将该存储过程设置为SQL Server服务启动时自动启动
EXEC sp_procoption
'StartBlackBoxTrace','STARTUP','ON'
GO
--新建追踪的存储过程
use master
go
create proc StartBlackBoxTrace
as
begin
    --默认开启追踪所有的SQL 执行语句,文件文件路径为默认
    DECLARE @TraceID int
    DECLARE @MaxFileSize bigint
    SET @MaxFileSize=25
    EXEC SP_TRACE_CREATE
    @TraceID OUTPUT,
    8,
    NULL,
    @MaxFileSize
    EXEC SP_TRACE_SETSTATUS @TraceID,1
END

--将该存储过程设置为SQL Server服务启动时自动启动
EXEC sp_procoption
'StartBlackBoxTrace','STARTUP','ON'
GO

836

图片 40

图片 41

Causes SQL Server to size the buffer pool at startup based on the value of the max server mem option instead of based on the total physical memory. You can use trace flag 836 to reduce the number of buffer descriptors that are allocated at startup in 32-bit AWE mode. Scope Startup.

 

 

840

由此如下脚本删除到具备的追踪

透过如下脚本删除到持有的追踪

SQL 9 – When trace turned on, SQL Server can perform larger I/O extent reads to populate the buffer pool when SQL Server starts this populates the buffer pool faster. Additionally, the larger I/O extent reads improve the initial query compilation and the response time when SQL Server starts. KB 912322

图片 42

图片 43

842

create  proc [dbo].[Performance_Trace_StopAll]  
AS   
declare traceCursor cursor for 
select id from sys.traces where id <> 1   
open traceCursor   
    declare @curid int   
    fetch next from traceCursor 
    into @curid   
    while(@@fetch_status=0)  
    begin          
        exec  sp_trace_setstatus @curid,0  
        exec  sp_trace_setstatus @curid,2   
        fetch next from traceCursor into @curid   
    end   
close traceCursor   
deallocate traceCursor 
create  proc [dbo].[Performance_Trace_StopAll]  
AS   
declare traceCursor cursor for 
select id from sys.traces where id <> 1   
open traceCursor   
    declare @curid int   
    fetch next from traceCursor 
    into @curid   
    while(@@fetch_status=0)  
    begin          
        exec  sp_trace_setstatus @curid,0  
        exec  sp_trace_setstatus @curid,2   
        fetch next from traceCursor into @curid   
    end   
close traceCursor   
deallocate traceCursor 

Use sys.dm_os_memory_node_access_stats to verify local vs. foreign memory under NUMA configurations after turning on this flag.

图片 44

图片 45

845

 

 

SQL 9 / 10 - On 64 bit SQL Server non ENT. This turns on Lock pages in memory.  Startup time of SQL Server takes longer because SQL Server allocates all memory up to the Max Server Memory setting. Scope Startup KB 970070.

三.死锁案例(二零一四年1九月七日晚补充)

**三.死锁案例(二〇一五年4月三日晚补充)**

902

那边我们来选取自个儿新建追踪来追踪一个死锁的发出进度,并且将其记录到我们的Trace文件中,这里大家来制作一个死锁

此地大家来行使和煦新建跟踪来追踪二个死锁的发出经过,况且将其记录到大家的Trace文件中,这里大家来制作八个死锁

SQL server may not start after (un) install of updates. When sql server holds at the script upgrade mode. KB 2163980. Mode examples details at

图片 46图片 47

图片 48图片 49

如上代码参照院子里大拿宋沄剑,这里大家利用种类的自带的profile进行规划追踪,我们一分区直属机关接公投择系统自带的死锁模板,进行追踪

如上代码参照院子里大牌宋沄剑,这里大家运用系统的自带的profile进行设计追踪,大家一分区直属机关接公投择系统自带的死锁模板,举行跟踪

&

图片 50

图片 51

下一场设置,私下认可的SPID为超过等于50,小于50的为系统自有事件

接下来设置,暗中同意的SPID为超越等于50,小于50的为系统自有事件

1106

图片 52

图片 53

SQL 9 - Used space in tempdb increases continuously when you run a query that creates internal objects in tempdb. KB 947204.

接下来,大家采纳方面包车型地铁死锁脚本,运维获取死锁的捕捉

然后,我们利用方面包车型地铁死锁脚本,运营获取死锁的捕捉

1117

图片 54

图片 55

Grows all data files at once, else it goes in turns.

能够看到,大家早已胜利的寻踪到这几个死锁。我们清楚这种追踪是高资本的,并且大家一时不清楚死锁爆发的切实可行日子,所以不能够间接开着那些Profile,出于品质缅怀也不提出如此做,所以大家应用新建的Trace文件,来保存改脚本,然后重定向到我们团结的文书夹,将死锁的新闻放置到该公文夹下,提供越来越大灵活性。

能够看来,大家早就顺遂的跟踪到这几个死锁。大家领悟这种跟踪是高费用的,况且我们有时候不知情死锁爆发的有血有肉日子,所以无法平素开着这几个Profile,出于质量思考也不建议那样做,所以大家选拔新建的Trace文件,来保存改脚本,然后重定向到大家自个儿的文件夹,将死锁的新闻放置到该公文夹下,提供更加大灵活性。

1118

SQL Server自己自带的Profile工具就提供编辑脚本的功力,大家将地点的宏图,导出成Trace脚本,我们点击“文件”,导出该安顿脚本

SQL Server本人自带的Profile工具就提供编辑脚本的魔法,我们将地点的设计,导出成Trace脚本,我们点击“文件”,导出该布署脚本

Switches allocations in tempDB from 1pg at a time (for first 8 pages) to one extent. There is now a cache of temp tables. When a new temp table is created on a cold system it uses the same mechanism as for SQL 8. When it is dropped though, instead of all the pages being deallocated completely, one IAM page & one data page are left allocated, then the temp table is put into a special cache. Subsequent temp table creations will look in the cache to see if they can just grab a pre-created temp table. If so, this avoids accessing the allocation bitmaps completely. The temp table cache isn't huge (32 tables), but this can still lead to a big drop in latch contention in tempdb.

图片 56

图片 57

1119

将该脚本保存到二个任务,然后我们展开,笔者顺便将默许的文书路线增添上

将该脚本保存到二个职位,然后大家开辟,作者顺手将私下认可的文书路线加多上

Turns off mixed extent allocation.

图片 58

图片 59

1140

/****************************************************/
/* Created by: SQL Server 2008 Profiler             */
/* Date: 2014/11/23  20:28:11         */
/****************************************************/


-- Create a Queue
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
--可以更改文件大小
set @maxfilesize = 5 

--默认死锁文件放置目录
declare @FilePath nvarchar(max)
set @FilePath=N'F:SQLTestDeadLock.trc'
-- Please replace the text InsertFileNameHere, with an appropriate
-- filename prefixed by a path, e.g., c:MyFolderMyTrace. 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, @FilePath, @maxfilesize, NULL 
if (@rc != 0) goto error

-- Client side File and Table cannot be scripted

-- Set the events
declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 137, 15, @on
exec sp_trace_setevent @TraceID, 137, 32, @on
exec sp_trace_setevent @TraceID, 137, 1, @on
exec sp_trace_setevent @TraceID, 137, 13, @on
exec sp_trace_setevent @TraceID, 137, 22, @on
exec sp_trace_setevent @TraceID, 148, 11, @on
exec sp_trace_setevent @TraceID, 148, 12, @on
exec sp_trace_setevent @TraceID, 148, 14, @on
exec sp_trace_setevent @TraceID, 148, 1, @on
exec sp_trace_setevent @TraceID, 26, 15, @on
exec sp_trace_setevent @TraceID, 26, 32, @on
exec sp_trace_setevent @TraceID, 26, 1, @on
exec sp_trace_setevent @TraceID, 26, 9, @on
exec sp_trace_setevent @TraceID, 26, 57, @on
exec sp_trace_setevent @TraceID, 26, 2, @on
exec sp_trace_setevent @TraceID, 26, 10, @on
exec sp_trace_setevent @TraceID, 26, 11, @on
exec sp_trace_setevent @TraceID, 26, 35, @on
exec sp_trace_setevent @TraceID, 26, 12, @on
exec sp_trace_setevent @TraceID, 26, 13, @on
exec sp_trace_setevent @TraceID, 26, 6, @on
exec sp_trace_setevent @TraceID, 26, 14, @on
exec sp_trace_setevent @TraceID, 26, 22, @on
exec sp_trace_setevent @TraceID, 25, 15, @on
exec sp_trace_setevent @TraceID, 25, 32, @on
exec sp_trace_setevent @TraceID, 25, 1, @on
exec sp_trace_setevent @TraceID, 25, 9, @on
exec sp_trace_setevent @TraceID, 25, 57, @on
exec sp_trace_setevent @TraceID, 25, 2, @on
exec sp_trace_setevent @TraceID, 25, 10, @on
exec sp_trace_setevent @TraceID, 25, 11, @on
exec sp_trace_setevent @TraceID, 25, 35, @on
exec sp_trace_setevent @TraceID, 25, 12, @on
exec sp_trace_setevent @TraceID, 25, 13, @on
exec sp_trace_setevent @TraceID, 25, 6, @on
exec sp_trace_setevent @TraceID, 25, 14, @on
exec sp_trace_setevent @TraceID, 25, 22, @on
exec sp_trace_setevent @TraceID, 59, 32, @on
exec sp_trace_setevent @TraceID, 59, 1, @on
exec sp_trace_setevent @TraceID, 59, 57, @on
exec sp_trace_setevent @TraceID, 59, 2, @on
exec sp_trace_setevent @TraceID, 59, 14, @on
exec sp_trace_setevent @TraceID, 59, 22, @on
exec sp_trace_setevent @TraceID, 59, 35, @on
exec sp_trace_setevent @TraceID, 59, 12, @on
exec sp_trace_setevent @TraceID, 60, 32, @on
exec sp_trace_setevent @TraceID, 60, 9, @on
exec sp_trace_setevent @TraceID, 60, 57, @on
exec sp_trace_setevent @TraceID, 60, 10, @on
exec sp_trace_setevent @TraceID, 60, 11, @on
exec sp_trace_setevent @TraceID, 60, 35, @on
exec sp_trace_setevent @TraceID, 60, 12, @on
exec sp_trace_setevent @TraceID, 60, 6, @on
exec sp_trace_setevent @TraceID, 60, 14, @on
exec sp_trace_setevent @TraceID, 60, 22, @on
exec sp_trace_setevent @TraceID, 189, 15, @on
exec sp_trace_setevent @TraceID, 189, 32, @on
exec sp_trace_setevent @TraceID, 189, 1, @on
exec sp_trace_setevent @TraceID, 189, 9, @on
exec sp_trace_setevent @TraceID, 189, 57, @on
exec sp_trace_setevent @TraceID, 189, 2, @on
exec sp_trace_setevent @TraceID, 189, 10, @on
exec sp_trace_setevent @TraceID, 189, 11, @on
exec sp_trace_setevent @TraceID, 189, 35, @on
exec sp_trace_setevent @TraceID, 189, 12, @on
exec sp_trace_setevent @TraceID, 189, 13, @on
exec sp_trace_setevent @TraceID, 189, 6, @on
exec sp_trace_setevent @TraceID, 189, 14, @on
exec sp_trace_setevent @TraceID, 189, 22, @on
exec sp_trace_setevent @TraceID, 45, 16, @on
exec sp_trace_setevent @TraceID, 45, 1, @on
exec sp_trace_setevent @TraceID, 45, 9, @on
exec sp_trace_setevent @TraceID, 45, 17, @on
exec sp_trace_setevent @TraceID, 45, 10, @on
exec sp_trace_setevent @TraceID, 45, 18, @on
exec sp_trace_setevent @TraceID, 45, 11, @on
exec sp_trace_setevent @TraceID, 45, 35, @on
exec sp_trace_setevent @TraceID, 45, 12, @on
exec sp_trace_setevent @TraceID, 45, 13, @on
exec sp_trace_setevent @TraceID, 45, 6, @on
exec sp_trace_setevent @TraceID, 45, 14, @on
exec sp_trace_setevent @TraceID, 45, 22, @on
exec sp_trace_setevent @TraceID, 45, 15, @on
exec sp_trace_setevent @TraceID, 44, 1, @on
exec sp_trace_setevent @TraceID, 44, 9, @on
exec sp_trace_setevent @TraceID, 44, 10, @on
exec sp_trace_setevent @TraceID, 44, 11, @on
exec sp_trace_setevent @TraceID, 44, 35, @on
exec sp_trace_setevent @TraceID, 44, 12, @on
exec sp_trace_setevent @TraceID, 44, 6, @on
exec sp_trace_setevent @TraceID, 44, 14, @on
exec sp_trace_setevent @TraceID, 44, 22, @on
exec sp_trace_setevent @TraceID, 41, 15, @on
exec sp_trace_setevent @TraceID, 41, 16, @on
exec sp_trace_setevent @TraceID, 41, 1, @on
exec sp_trace_setevent @TraceID, 41, 9, @on
exec sp_trace_setevent @TraceID, 41, 17, @on
exec sp_trace_setevent @TraceID, 41, 10, @on
exec sp_trace_setevent @TraceID, 41, 18, @on
exec sp_trace_setevent @TraceID, 41, 11, @on
exec sp_trace_setevent @TraceID, 41, 35, @on
exec sp_trace_setevent @TraceID, 41, 12, @on
exec sp_trace_setevent @TraceID, 41, 13, @on
exec sp_trace_setevent @TraceID, 41, 6, @on
exec sp_trace_setevent @TraceID, 41, 14, @on
exec sp_trace_setevent @TraceID, 40, 1, @on
exec sp_trace_setevent @TraceID, 40, 9, @on
exec sp_trace_setevent @TraceID, 40, 6, @on
exec sp_trace_setevent @TraceID, 40, 10, @on
exec sp_trace_setevent @TraceID, 40, 14, @on
exec sp_trace_setevent @TraceID, 40, 11, @on
exec sp_trace_setevent @TraceID, 40, 35, @on
exec sp_trace_setevent @TraceID, 40, 12, @on


-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint

exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Server Profiler - efbc9d24-69cd-465f-8daf-e38493da0332'
-- 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
/****************************************************/
/* Created by: SQL Server 2008 Profiler             */
/* Date: 2014/11/23  20:28:11         */
/****************************************************/


-- Create a Queue
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
--可以更改文件大小
set @maxfilesize = 5 

--默认死锁文件放置目录
declare @FilePath nvarchar(max)
set @FilePath=N'F:SQLTestDeadLock.trc'
-- Please replace the text InsertFileNameHere, with an appropriate
-- filename prefixed by a path, e.g., c:MyFolderMyTrace. 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, @FilePath, @maxfilesize, NULL 
if (@rc != 0) goto error

-- Client side File and Table cannot be scripted

-- Set the events
declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 137, 15, @on
exec sp_trace_setevent @TraceID, 137, 32, @on
exec sp_trace_setevent @TraceID, 137, 1, @on
exec sp_trace_setevent @TraceID, 137, 13, @on
exec sp_trace_setevent @TraceID, 137, 22, @on
exec sp_trace_setevent @TraceID, 148, 11, @on
exec sp_trace_setevent @TraceID, 148, 12, @on
exec sp_trace_setevent @TraceID, 148, 14, @on
exec sp_trace_setevent @TraceID, 148, 1, @on
exec sp_trace_setevent @TraceID, 26, 15, @on
exec sp_trace_setevent @TraceID, 26, 32, @on
exec sp_trace_setevent @TraceID, 26, 1, @on
exec sp_trace_setevent @TraceID, 26, 9, @on
exec sp_trace_setevent @TraceID, 26, 57, @on
exec sp_trace_setevent @TraceID, 26, 2, @on
exec sp_trace_setevent @TraceID, 26, 10, @on
exec sp_trace_setevent @TraceID, 26, 11, @on
exec sp_trace_setevent @TraceID, 26, 35, @on
exec sp_trace_setevent @TraceID, 26, 12, @on
exec sp_trace_setevent @TraceID, 26, 13, @on
exec sp_trace_setevent @TraceID, 26, 6, @on
exec sp_trace_setevent @TraceID, 26, 14, @on
exec sp_trace_setevent @TraceID, 26, 22, @on
exec sp_trace_setevent @TraceID, 25, 15, @on
exec sp_trace_setevent @TraceID, 25, 32, @on
exec sp_trace_setevent @TraceID, 25, 1, @on
exec sp_trace_setevent @TraceID, 25, 9, @on
exec sp_trace_setevent @TraceID, 25, 57, @on
exec sp_trace_setevent @TraceID, 25, 2, @on
exec sp_trace_setevent @TraceID, 25, 10, @on
exec sp_trace_setevent @TraceID, 25, 11, @on
exec sp_trace_setevent @TraceID, 25, 35, @on
exec sp_trace_setevent @TraceID, 25, 12, @on
exec sp_trace_setevent @TraceID, 25, 13, @on
exec sp_trace_setevent @TraceID, 25, 6, @on
exec sp_trace_setevent @TraceID, 25, 14, @on
exec sp_trace_setevent @TraceID, 25, 22, @on
exec sp_trace_setevent @TraceID, 59, 32, @on
exec sp_trace_setevent @TraceID, 59, 1, @on
exec sp_trace_setevent @TraceID, 59, 57, @on
exec sp_trace_setevent @TraceID, 59, 2, @on
exec sp_trace_setevent @TraceID, 59, 14, @on
exec sp_trace_setevent @TraceID, 59, 22, @on
exec sp_trace_setevent @TraceID, 59, 35, @on
exec sp_trace_setevent @TraceID, 59, 12, @on
exec sp_trace_setevent @TraceID, 60, 32, @on
exec sp_trace_setevent @TraceID, 60, 9, @on
exec sp_trace_setevent @TraceID, 60, 57, @on
exec sp_trace_setevent @TraceID, 60, 10, @on
exec sp_trace_setevent @TraceID, 60, 11, @on
exec sp_trace_setevent @TraceID, 60, 35, @on
exec sp_trace_setevent @TraceID, 60, 12, @on
exec sp_trace_setevent @TraceID, 60, 6, @on
exec sp_trace_setevent @TraceID, 60, 14, @on
exec sp_trace_setevent @TraceID, 60, 22, @on
exec sp_trace_setevent @TraceID, 189, 15, @on
exec sp_trace_setevent @TraceID, 189, 32, @on
exec sp_trace_setevent @TraceID, 189, 1, @on
exec sp_trace_setevent @TraceID, 189, 9, @on
exec sp_trace_setevent @TraceID, 189, 57, @on
exec sp_trace_setevent @TraceID, 189, 2, @on
exec sp_trace_setevent @TraceID, 189, 10, @on
exec sp_trace_setevent @TraceID, 189, 11, @on
exec sp_trace_setevent @TraceID, 189, 35, @on
exec sp_trace_setevent @TraceID, 189, 12, @on
exec sp_trace_setevent @TraceID, 189, 13, @on
exec sp_trace_setevent @TraceID, 189, 6, @on
exec sp_trace_setevent @TraceID, 189, 14, @on
exec sp_trace_setevent @TraceID, 189, 22, @on
exec sp_trace_setevent @TraceID, 45, 16, @on
exec sp_trace_setevent @TraceID, 45, 1, @on
exec sp_trace_setevent @TraceID, 45, 9, @on
exec sp_trace_setevent @TraceID, 45, 17, @on
exec sp_trace_setevent @TraceID, 45, 10, @on
exec sp_trace_setevent @TraceID, 45, 18, @on
exec sp_trace_setevent @TraceID, 45, 11, @on
exec sp_trace_setevent @TraceID, 45, 35, @on
exec sp_trace_setevent @TraceID, 45, 12, @on
exec sp_trace_setevent @TraceID, 45, 13, @on
exec sp_trace_setevent @TraceID, 45, 6, @on
exec sp_trace_setevent @TraceID, 45, 14, @on
exec sp_trace_setevent @TraceID, 45, 22, @on
exec sp_trace_setevent @TraceID, 45, 15, @on
exec sp_trace_setevent @TraceID, 44, 1, @on
exec sp_trace_setevent @TraceID, 44, 9, @on
exec sp_trace_setevent @TraceID, 44, 10, @on
exec sp_trace_setevent @TraceID, 44, 11, @on
exec sp_trace_setevent @TraceID, 44, 35, @on
exec sp_trace_setevent @TraceID, 44, 12, @on
exec sp_trace_setevent @TraceID, 44, 6, @on
exec sp_trace_setevent @TraceID, 44, 14, @on
exec sp_trace_setevent @TraceID, 44, 22, @on
exec sp_trace_setevent @TraceID, 41, 15, @on
exec sp_trace_setevent @TraceID, 41, 16, @on
exec sp_trace_setevent @TraceID, 41, 1, @on
exec sp_trace_setevent @TraceID, 41, 9, @on
exec sp_trace_setevent @TraceID, 41, 17, @on
exec sp_trace_setevent @TraceID, 41, 10, @on
exec sp_trace_setevent @TraceID, 41, 18, @on
exec sp_trace_setevent @TraceID, 41, 11, @on
exec sp_trace_setevent @TraceID, 41, 35, @on
exec sp_trace_setevent @TraceID, 41, 12, @on
exec sp_trace_setevent @TraceID, 41, 13, @on
exec sp_trace_setevent @TraceID, 41, 6, @on
exec sp_trace_setevent @TraceID, 41, 14, @on
exec sp_trace_setevent @TraceID, 40, 1, @on
exec sp_trace_setevent @TraceID, 40, 9, @on
exec sp_trace_setevent @TraceID, 40, 6, @on
exec sp_trace_setevent @TraceID, 40, 10, @on
exec sp_trace_setevent @TraceID, 40, 14, @on
exec sp_trace_setevent @TraceID, 40, 11, @on
exec sp_trace_setevent @TraceID, 40, 35, @on
exec sp_trace_setevent @TraceID, 40, 12, @on


-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint

exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Server Profiler - efbc9d24-69cd-465f-8daf-e38493da0332'
-- 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

Continuous tempdb growth after upgrading SQL 2005 pre-SP2 to SP3/SP4 or to SQL 2008 or newer
KB Article:
First Added: SQL 2005 SP2 build 3166
Versions: SQL 2005 SP3 , SQL 2008, SQL 2008 R2, SQL 2012

图片 60

图片 61

1180

我们只必要将这几个剧本运维就能够,当然此段脚本,在实例重启的时候,全体的trace都会删除掉,能够将该段代码改成存储进度,然后设置成实例运转的时候运营,

大家只需求将那个剧本运维就能够,当然此段脚本,在实例重启的时候,全体的trace都会删除掉,能够将该段代码改成存储进度,然后设置成实例运营的时候运营,

SQL 7 - Forces allocation to use free pages for text or image data and maintain efficiency of storage. 1197 applies only in the case of SQL 7 – SP3. Helpful in case when DBCC SHRINKFILE and SHRINKDATABASE commands may not work because of sparsely populated text, ntext, or image columns

主意参考本篇的上半部分。

艺术参考本篇的上半局地。

1197

本来大家也足以安装别的参数,比方运营时间,运转时刻,追踪文件大小,地方,数量等,删除不供给的trace追踪事件...

当然大家也能够设置其他参数,比方运维时间,运维时刻,追踪文件大小,地方,数量等,删除不供给的trace追踪事件...

1200

当运维到一段时间之后,大家一直拷贝下来,找台Computer深入分析就能够了。

当运行到一段时间之后,大家直接拷贝下来,找台Computer剖析就足以了。

Prints detailed lock information as every request for a lock is made (the process ID and type of lock requested).

越来越灵活的主意是使用非业务高峰期,利用SQL Server自带的邮件指示成效,直接检查实验出标题,然后Send Email....

越来越灵活的格局是行使非业务高峰期,利用SQL Server自带的邮件提示功用,直接检查实验出标题,然后Send Email....

1202

 

 

Insert blocked lock requests into syslocks.

四.SQL Server中黑匣子(二〇一四年5月六日晚补充)

**四.SQL Server中黑匣子(二零一五年1二月14日晚补充)**

1204

黑匣子作为飞机出现事故后的追踪利器,在微软的SQL Server这几个数据库中默许也给装上了此引擎,但是尚未开启,此意义大概扶持大家检查判断间歇性的服务器崩溃。它比大家地点介绍的暗中同意开启的追踪盯梢的音信更全,追踪越来越大学一年级些。其内容包含了:“SP:运转”、“SQL:批管理运行”、分外和注意等事件

黑匣子作为飞机出现事故后的追踪利器,在微软的SQL Server那些数据库中暗中同意也给装上了此引擎,可是从未拉开,此功效只怕扶助大家会诊间歇性的服务器崩溃。它比大家地方介绍的私下认可开启的追踪盯梢的新闻更全,追踪越来越大学一年级些。其剧情满含了:“SP:运营”、“SQL:批管理运营”、万分和潜心等事件

Returns resources and types of locks participating in a deadlock and command affected. Scope: global

其一追踪通过在sp_trace_create的默许@option参数设置为8来布局的。代码如下:

本条追踪通过在sp_trace_create的暗许@option参数设置为8来配置的。代码如下:

1205

DECLARE @Traced INT
EXEC sp_trace_create
@Traced OUTPUT,
@options=8
EXEC sp_trace_setstatus @Traced,1
DECLARE @Traced INT
EXEC sp_trace_create
@Traced OUTPUT,
@options=8
EXEC sp_trace_setstatus @Traced,1

More detailed information about the command being executed at the time of a deadlock. Documented in SQL 7 BOL.

经过上述的布署会自行配置成多个滚动文件,当抵达暗中认可的最大文件体量5MB的时候,就在五个文本中循环滚动依次更新。

通过以上的配置会自动配置成七个滚动文件,当达到暗中同意的最大文件体量5MB的时候,就在多个公文中循环滚动依次更新。

1206

理当如此即使感到到生成的文件5MB有一点小,能够手动配置改换大小,恐怕自定义文件路径,这么些都是允许自定义设置的。

本来若是认为生成的文本5MB有一点小,能够手动配置更动大小,恐怕自定义文件路线,这几个都以允许自定义设置的。

Used to complement flag 1204 by displaying other locks held by deadlock parties.

图片 62

图片 63

1211

DECLARE @TraceID INT
DECLARE @maxfilesize BIGINT
SET @maxfilesize=25
DECLARE @tracefile nvarchar(245)
SET @tracefile=N'F:SQLTestTRACEMYTRACE.trc'
EXEC sp_trace_create
@TraceID OUTPUT,
@options=8,
@tracefile=NULL,
@maxfilesize=@maxfilesize
EXEC sp_trace_setstatus @TraceID,1
DECLARE @TraceID INT
DECLARE @maxfilesize BIGINT
SET @maxfilesize=25
DECLARE @tracefile nvarchar(245)
SET @tracefile=N'F:SQLTestTRACEMYTRACE.trc'
EXEC sp_trace_create
@TraceID OUTPUT,
@options=8,
@tracefile=NULL,
@maxfilesize=@maxfilesize
EXEC sp_trace_setstatus @TraceID,1

Disables lock escalation based on memory pressure, or based on number of locks. The SQL Server Database Engine will not escalate row or page locks to table locks.

编辑:mg 本文来源:Server中有关跟踪

关键词: SQL Server MSSQL