SQL Server 黑盒跟踪 -- 介绍

SQL Server 黑盒跟踪 -- 介绍

问题描述:

你是否碰到过这些问题:一个查询导致SQL Server崩溃,或者因为CPU飙到100%而导致服务器不可用?

解决方案:

SQL Server提供了另一个开箱即用的后台跟踪就是黑盒跟踪(Blackbox Traces)。这个跟踪被设计为同飞机上的黑匣子功能类似,SQL Server黑匣子就是拥有大量运行数据的记录。黑匣子记录了发送到SQL Server的所有查询以及类似错误信息的有用记录,可以帮助诊断间歇性服务器崩溃,或者知道在CPU飙高之前发生了什么错误。

它跟踪了哪些事件?

它比默认跟踪更大一些,并包含了下面的信息:

  • 存储过程的执行“SP:Starting”。
  • T-SQL的执行“SQL:BatchStarting”。
  • 错误和警告事件“Exception”和“Attention”。

对于这些事件,下面的信息被跟踪:

  • 执行的查询或错误信息
  • 执行的日志和时间
  • 执行查询或存储过程的用户
  • 事件发生的数据库
  • 发送查询或导致错误的服务器或工作站
  • 实施查询的应用程序名

黑匣子写入到128K的块文件中。换句话说,当启动黑盒,直到它有128K的有价值数据写入的时候,否则它总是0K。这样的架构使得它是非常有效率的进程,使用了最少的CPU资源。所以,我们可以运行在大量时间段内运行它,而不用担心它会降低服务器性能。如果你停止了SQL Server服务,SQL Server将会将缓存中的数据写入这个跟踪文件。

时间: 2024-10-04 03:23:18

SQL Server 黑盒跟踪 -- 介绍的相关文章

SQL Server 默认跟踪 -- 介绍

SQL Server 默认跟踪 -- 介绍 什么是默认跟踪? 默认的SQL Server预定义跟踪,是SQL Server中默认开启的最轻量级跟踪,由5个跟踪文件(.trc)组成,每个文件的最大值为20MB,存储在SQL Server log目录. 这些文件用作临时存储捕获事件的缓存.存储在缓存中的事件一段事件后会被删除.当SQL Server重启后,或者当当前使用的文件达到最大值时,最旧的文件被删除,在忙碌的生产环境,这样的循环缓存会在几分钟内被循环覆盖. 注意: 后续版本的 Microsof

SQL Server 黑盒跟踪 -- 如何启用黑盒跟踪?

SQL Server 黑盒跟踪 -- 如何启用黑盒跟踪? 这个跟踪是通过将sp_trace_create的@options参数值设置为8来配置的.@options指定为跟踪设置的选项,当设置值为8,即TRACE_PRODUCE_BLACKBOX,指定服务器产生的最后5MB跟踪信息记录将由服务器保存.TRACE_PRODUCE_BLACKBOX与所有其他选项不兼容.@tracefile指定跟踪将写入的位置和文件名,在使用TRACE_PRODUCE_BLACKBOX选项时无法指定trace_file

SQL Server 黑盒跟踪 -- 如何在生产环境配置?

SQL Server 黑盒跟踪 -- 如何在生产环境配置? 如果遇到间歇性故障,为了充分利用黑盒跟踪,就要确保当服务器运行时它也一直出于运行状态(包括计划中的或计划外重启之后).为达到这个要求,可以将黑盒跟踪设置为在SQL Server启动时自动启动.首先,将跟踪定义封装在主数据库的一个存储过程中: USE master GO CREATE PROCEDURE StartBlackBoxTrace AS BEGIN DECLARE @TraceId int DECLARE @maxfilesiz

SQL Server 黑盒跟踪 -- 进一步了解sqldiag

SQL Server 黑盒跟踪 -- 进一步了解sqldiag SQL Server提供了一个特别的命令工具sqldiag,帮助收集用于定位SQL Server问题的信息.你可以在其它SQL Server可执行命令所在目录相同的binn目录下找到该文件.默认目录是\Program Files\Microsoft SQL Server\MSSQL\Binn.当SQL Server正在运行时,你从命令提示符执行sqldiag,这个工具收集了大量的操作系统,硬件配置,SQL Server配置等信息.S

SQL Server 黑盒跟踪 -- 深入进阶

SQL Server 黑盒跟踪 -- 深入进阶 当你报告错误给支持提供商时,确保要提供Blackbox.trc和Sqldiag.txt文件. 创建Blackbox.trc文件: 1. 创建跟踪 2. 开启跟踪 3. 在运行sqldiag工具前停止跟踪 你可以用下面的存储过程,trace_blackbox,去创建,启动,然后停止黑盒跟踪. 拷贝下面的脚本到查询分析器,然后脚本,创建trace_blackbox存储过程.注意,如果你要在master数据库创建它,你必须在master数据库运行该存储过

SQL Server 2012笔记分享-33:SQL Server profiler跟踪

需求 使用SQL server profiler跟踪当前实例的所有常见活动,并将结果保存到文件中. ================================================================ 开始程序中选择SQL server profiler,如图. 选择文件--新建跟踪,如图. 连接到当前的SQL server实例,如图. 在跟踪属性里面配置跟踪名称.保存到的文件地址.保存到SQL报表.启用跟踪停止时间等,如图. 下图是一个跟踪启动后实时的跟踪情况,如图

统计分析SQL Server Profiler 跟踪的SQL

--跟踪文件读入到表中分析 SELECT * INTO ZGSJY FROM fn_trace_gettable('E:\wxxcdbprofiler.trc', default); --某时间内,最耗时SQL select TOP 100 SUBSTRING(Textdata,1,660) as '名称', count(*) as '数量', sum(duration/1000) as '总运行时间ms', avg(duration/1000) as '平均运行时间ms', avg(cpu)

SQL Server 默认跟踪 -- 捕获事件详解

SQL Server 默认跟踪 -- 捕获事件详解 哪些具体事件默认跟踪文件能够捕获到? --returns full list of events SELECT * FROM sys.trace_events --returns a full list of categories SELECT * FROM sys.trace_categories --returns a full list of subclass values SELECT * FROM sys.trace_subclass

SQL Server 默认跟踪应用3 -- 检测对表的DDL操作

SQL Server 默认跟踪应用3 -- 检测对表的DDL操作 在SQL Server数据库上发生的DDL操作,能知道是谁做的么? 是的.SQL Server默认跟踪有对象修改事件. 这个脚本列出所有的对象修改事件.查询条件中加上时间和数据库名的限制. select e.name as eventclass, t.loginname, t.spid, t.starttime, t.textdata, t.objectid, t.objectname, t.databasename, t.hos