SQL Server内建SQLDiag工具程序的使用

前言:SQLDiag是SQL Server内建的诊断收集共享程序,

[SQL Server 2005]
默认位置:C:\Program ">Files\Microsoft SQL Server\90\Tools\Binn\SQLDiag.exe
你可以在任何路径下执行SQLDiag因为此路径已被加到path系统变量,执行sqldiag -?或sqldiag /?即可显示参数说明
SQL 2005的sqldiag搭配参数请使用正斜线"/"

SQLdiag
可以收集下列类型的诊断信息:
Windows 效能记录
Windows 事件记录文件
SQL Server Profiler 追踪
SQL Server 封锁信息
SQL Server 组态信息

http://technet.microsoft.com/zh-tw/library/ms162833.aspx

一般使用:
例如:
sqldiag /O C:\temp\sqldiag
(/O 指定输出档案的目录)
最下方会出现
2008/07/01 00:34:42.82 SQLDIAG
Collection started. Press Ctrl+C to stop.表示正在收集中
在此时按下Ctrl+C即可停止收集 收集的信息会储存在指定的C:\temp\sqldiag\目录下,其中数个log_xx.trc档是从C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\路径下所复制的

进阶收集: 修改并指定xml檔,来收集Performance Counter的信息

[SQL Server 2000]
默认位置:C:\Program Files\Microsoft SQL Server\MSSQL\Binn\SQLDiag.exe
切换目录到此位置后执行sqldiag -?或sqldiag /?即可显示参数说明
SQL 2000的sqldiag搭配参数执行要使用"-"
例如: sqldiag -E -O c:\temp\sqldiag.log
(-O 指定输出信息到指定的档案里)

若要让SQL 2000可以取得SQL Trace(*.trc)资料,可以利用下面[Sample Code]或KB281671文件范例SQL在master数据库新增一个名为trace_blackbox的Stored Procedure
KB281671 INF: 预存程序来建立一个 SQL Server 2000 的 blackbox 追踪
然后在排定时间执行trace_blackbox 1以启动trace_blackbox,执行期间这个Instance所有联机的SQL Command都会记录到C:\Program Files\Microsoft SQL Server\MSSQL\Data\blackbox开头.trc,在必要的时间执行trace_blackbox 0以关闭trace_blackbox,而这些trc档案都将会被sqldiag所复制并更名到指定的位置

[Caution]
若执行SQLDiag当时trace_blackbox还开着,档案将无法复制所以SQLDiag.trc会是空的

[Samlp Code]
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trace_blackbox]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[trace_blackbox]

GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE    PROCEDURE trace_blackbox @on int = 2 AS
/* If no argument is passed to the @on parameter then get the current blackbox trace status.
  If @on is zero then stop and delete the blackbox trace.
  If @on is one then create and start the blackbox trace.
*/
declare @traceid int, @blackboxstatus int, @dir nvarchar(80)
set @traceid = 0
set @blackboxstatus = 0
set nocount on
SELECT @traceid = traceid FROM :: fn_trace_getinfo(0)
where property = 1 and value = 8
IF @on = 0 and @traceid > 0
begin
 select @blackboxstatus = cast(value as int) FROM :: fn_trace_getinfo(0)
  where traceid = @traceid and property = 5
 IF @blackboxstatus > 0 exec sp_trace_setstatus @traceid,0 --stop blackbox trace
 exec sp_trace_setstatus @traceid,2 --delete blackbox trace definition
end
IF @on = 1
  begin
   IF @traceid < traceid =" 0" blackboxstatus =" 0" traceid =" traceid" property =" 1" value =" 8" blackboxstatus =" cast(value" traceid =" @traceid" property =" 5"> 0 and @blackboxstatus > 0
  begin
   select @dir = cast(value as nvarchar(80)) FROM :: fn_trace_getinfo(0)
    where traceid = @traceid and property = 2
   select 'The blackbox trace is running and the trace file is in the following directory.'
   select @dir + '.trc'
  end
ELSE select 'The blackbox trace is not running.'
set nocount off
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON

时间: 2024-10-06 11:32:51

SQL Server内建SQLDiag工具程序的使用的相关文章

Sql server表面区域配置工具保服务

使用表面区域配置工具保护服务 CISSP公司:Kevin Beaver 在SQL Server 2005中,你可以手工地配置来平衡安全性和功能之间的关系.然而,如果你想要确保你覆盖了所有的安全基础范围,并且只想激活你绝对需要的服务(还有最小化对"表面"的攻击),微软使得这项工作对你而言简单化了.我说的是SQL Server 表面区域配置工具,这是构建在SQL Server 2005和 SQL Server 2005 Express 版本上的. 你可以通过开始/程序/微软SQL Serv

Sql Server内置函数实现MD5加密

原文:Sql Server内置函数实现MD5加密 实例 MD5加密"123456": HashBytes('MD5','123456') 结果:0xE10ADC3949BA59ABBE56E057F20F883E (提示:看完最后,结果要进行转换.)   函数 函数 描述 返回值 HashBytes  HashBytes ('加密方式', '待加密的值')加密方式= MD2 | MD4 | MD5 | SHA | SHA1 返回值类型:varbinary(maximum 8000 by

SQL SERVER编写存储过程小工具_存储过程

在开发数据库系统的过程中,经常要写很多的存储过程.为了统一格式和简化开发过程,我编写一些存储过程,用来自动生成存储过程.下面就为您简单介绍一下它们.其中一个用于生成Insert过程,另一个用于生成Update过程.  Sp_GenInsert  该过程运行后,它为给定的表生成一个完整的Insert过程.如果原来的表有标识列,您得将生成的过程中的SET IDNTITY_INSERT ON 语句手工删除.  语法如下  sp_GenInsert < Table Name >,< Stored

SQL SERVER编写存储过程小工具

在开发数据库系统的过程中,经常要写很多的存储过程.为了统一格式和简化开发过程,我编写一些存储过程,用来自动生成存储过程.下面就为您简单介绍一下它们.其中一个用于生成Insert过程,另一个用于生成Update过程. Sp_GenInsert 该过程运行后,它为给定的表生成一个完整的Insert过程.如果原来的表有标识列,您得将生成的过程中的SET IDNTITY_INSERT ON 语句手工删除. 语法如下 sp_GenInsert < Table Name >,< Stored Pro

SQL Server编写存储过程小工具(三)

server|存储过程 SQL Server编写存储过程小工具 功能:为给定表创建Update存储过程 语法: sp_GenUpdate <Table Name>,<Primary Key>,<Stored Procedure Name> 以northwind 数据库为例 sp_GenUpdate 'Employees','EmployeeID','UPD_Employees' 注释:如果您在Master系统数据库中创建该过程,那您就可以在您服务器上所有的数据库中使用该

SQL Server编写存储过程小工具(二)

server|存储过程 SQL Server编写存储过程小工具 以下是两个存储过程的源程序 /*=========================================================== 语法: sp_GenInsert <Table Name>,<Stored Procedure Name> 以northwind 数据库为例 sp_GenInsert 'Employees', 'INS_Employees' 注释:如果您在Master系统数据库中创建该

SQL点滴15—在SQL Server 2008中调用C#程序

原文:SQL点滴15-在SQL Server 2008中调用C#程序 T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了.这时可以借助CLR了,我们可以在SQL Server 2008中扩展C#程序来完成循环等过程式的查询,或者其他SQL不便实现的功能.这个随笔中将介绍在SQL Server中扩展C#程序实现正则表达式的替换功能. 新建一个类库程序命名为Regex,打开Visual Studio 2008,点击File,点击New,点击Proje

sql server-如何在SQL Server 数据库中调用JAVA程序

问题描述 如何在SQL Server 数据库中调用JAVA程序 工作中 遇到一个实际的问题如下: 一个在线的SQL server数据库A,他的一个触发器在数据库有更新时把新的数据插入的到另一个SQL server 数据库B,已经写好的一个JAVA程序可以把B中的数据全部复制到一个Oracle 数据库C中,并且立即把数据库B中的数据清空.现在希望这个程序能够自动执行,就是JAVA程序能够在检测到B中有新数据后立即开始自动执行.我已经知道对于Oracle数据库可以通过触发器直接调用JAVA程序,可是

asp.net Application cookie Sessions Server内建对象(1/4)

asp教程.net application cookie sessions server内建对象 asp.net教程内建了许多对象,包括application.response.request.cookie.sessions.cache.server和viewstate等对象.通过这些对象,可以提供网站一些必不可少的功能,例如得到文件的绝对路径.在线人数.访问网站总人数.网上商店购物框等. cookie对象采用键/值对的方法记录数据,语句mycookie.expires=datetime.now