CustomDiagnostics
在我们第一次双击D:\Program Files\Microsoft SQL Server\100\Tools\Binn目录下的SQLdiag.exe应用程序所收集的SQL Server默认跟踪、SQLDUMPER_ERRORLOG、MSINFO32输出,实际就是使用了自定义诊断收集器:

上一篇我们提到将过滤器添加到自定义收集器,由于添加过滤器需Stop再Start跟踪,导入跟踪文件到RML或SQL Nexus时,在检测到[TRACE_STOP_EVENT]后就停止.trc文件的分析。如果要借助RML/Nexus分析跟踪文件,就要避免跟踪文件里有[TRACE_STOP_EVENT],于是将创建服务器端跟踪脚本保存到名为SQL_2008_ServerSideTrace_Start.sql文件,将停止移除服务器端跟踪脚本保存到名为SQL_2008_ServerSideTrace_Stop.sql文件,再将它们添加到自定义收集器:

上图中自定义收集器MSInfo分别来自SQLDiagPerfStats_Detailed_Trace2008.XML中的MSInfo、SQLDiag.XML中的MSInfo;PerfStats来自SQLDiagPerfStats_Detailed_Trace2008.XML中的PerfStats;ProfilerTrace是自己添加的与服务器端跟踪相关的脚本。
PerfStatsScript
PerfStats可以用作替换SQLDiag的通用故障排除实用工具,因为收集到的数据更加详细,而且可以为更多的故障场景提供信息。PerfStats脚本目前已集成在SQL Nexus中的一个工具。PerfStats使用的XML配置文件是SQLDiag使用的配置文件的扩展版本;PerfStats添加了一些额外的自定义收集器以收集额外的信息。
PerfStats自定义收集器主要执行SQL_2008_Perf_Stats.sql和SQL_2008_Perf_Stats_Snapshot.sql脚本,其中Snapshot被执行两次(启动时执行一次、关闭时执行一次),不带Snapshot的脚本只执行一次。Snapshot脚本收集丢失索引的详细信息,还包括从sys.dm_exec_query_stats中得到的性能最差的50个查询(通过磁盘、CPU和持续时间判断)。不带Snapshot的脚本将轮询收集活动查询数据(每10秒)和实例范围数据(每分钟),此脚本的输出文件包含了收集数据的主要内容。
1>活动查询的数据
活动查询轮询默认每10秒钟采集一次下列数据,分为3段:
Requests:每个带有活动查询的会话的广泛而详细的信息。这些信息包括CPU时间、内存使用、读写、程序名称、登录名、等待类型、持续时间和阻塞的细节,以及其他信息。
Head Blocker Summary:检测到阻塞的时候,输出文件会记录一些会话信息,例如阻塞链的头、阻塞的会话的数据以及语句文本。
Notable Active Queries:包含过程名、语句文本和执行统计信息。
2>实例范围内的数据
实例范围轮询默认每分钟采集一次,这个性能数据包含了SQL Server PerfMon计数器的一个子集、虚拟文件统计信息以及等待统计信息数据。
异常处理
使用SQL Nexus导入收集的数据时,部分输出文件Import Failed:

查看Nexus Log发现类似以下错误:
Rowset Importer failed for file: F:\TroubleShooting\SQLdiag\Output\HostName_InstanceName_SQL_2008_Perf_Stats_Startup.OUTexception: System.Data.SqlClient.SqlException (0x80131904): 从 bcp 客户端收到一个对 colid 14 无效的列长度。
实际上SQL_2008_Perf_Stats_Snapshot_Shutdowm.OUT输出文件的数据采集不全,经常刚运行就结束了。如果有Snapshot_Shutdowm.OUT文件,就不会导入Snapshot_Startup.OUT文件,通常的做法是在导入SQL Nexus前,将Snapshot_Shutdowm.OUT文件删除,或者修改XML配置文件,让Snapshot脚本仅在启动时运行一次。
逐一排查SQL_2008_Perf_Stats_Startup.OUT文件内容,定位导入失败的记录。分析收集数据脚本,对比相应的数据表:

库下tbl_NOTABLEACTIVEQUERIES表的字段类型与收集数据时使用的字段类型不一致,导入数据时使用Profiler跟踪到创建表的字段类型即为varchar(?),暂时没找到建表脚本保存在哪,因此考虑修改SQL_2008_Perf_Stats.sql中的对应部分。
17:29 2016/1/15 最近发现另一个错误:Rowset Importer failed for file: F:\TroubleShooting\SQLdiag\Output\HostName_InstanceName_SQL_2008_Perf_Stats_Snapshot_Startup.OUTexception: System.Data.SqlClient.SqlException (0x80131904): 从 bcp 客户端收到一个对 colid 16 无效的列长度。
此次是Snapshot输出文件的错误,排查发现表tbl_TopN_QueryPlanStats中没数据,初步判断是表中字段类型与收集数据不匹配。创建与目标表一致的临时表,然后用对应的采集语句执行,"将截断字符串或二进制数据",尝试将SQL_2008_Perf_Stats_Snapshot.sql中Top N Query Plan Statistics部分获取stmt_text字段进行截取left(stmt_text,略小于字段类型长度),问题解决。
PssDiag
PssDiag配置管理器提供各种各样的配置选项,你可以轻松地自定义数据收集。首先你需要选择平台X86、X64或IA64,然后选择SQL Server版本。我们再来考虑一下工具中的一些关键领域:

Connection Info
提供打算收集诊断数据的计算机名称和SQL Server实例名称的地方。这里的最佳配置实践是总是提供计算机名和实例名。提供计算机名和实例名后,你可以选择允许数据收集的身份验证,是Windows还是SQL Server身份验证。如果选择SQL Server身份验证,你只能提供用户名,在运行时系统将提示你输入密码。
Machine-wide Diagnostics
Windows事件日志收集的配置
PerfMon数据收集的配置:默认情况下,一组计数器是基于存在于所选模板的信息来预先填充的。你可以启用你认为对于分析你的问题场景有必要的额外计数器。你可以配置最大文件大小和采样间隔。
Instance-specific Diagnostics
用于配置database engine或analysis server跟踪和SQLdiag输出的收集。在这里,可以为数据库引擎和SQL Server Analysis Servers实例配置一个跟踪。基于选择的SQL Server版本,会看到Profiler跟踪事件填充在列表中,你可以为数据收集配置Profiler跟踪的滚动大小。SQLdiag诊断脚本的收集可在这个部分启用或者禁用。
Custom Diagnostics
它提供了预先内置的定制收集器的一个列表,这些收集器已经可用于数据收集(自定义诊断配置所使用的T-SQL、VBScript和DOC命令可在X:\Program Files\Microsoft\Pssdiag\CustomDiagnostics文件夹中找到)。此外,你还可以扩展数据收集。
关于PssDiag的详细操作可参考《SQL Server 2012 深入解析与性能优化(第3版)》11.4 使用SQL diag配置管理器。

SQLdiag-配置文件-扩展的更多相关文章

  1. Mysql配置文件 扩展详细配置

    目录 配置文件中有些特定参数 扩展配置 max_connections connect_timeout interactive_timeout|wait_timeout net_retry_count ...

  2. Asp.net 面向接口可扩展框架之类型转化基础服务

    新框架正在逐步完善,可喜可贺的是基础服务部分初具模样了,给大家分享一下 由于基础服务涉及面太广,也没开发完,这篇只介绍其中的类型转化部分,命名为类型转化基础服务,其实就是基础服务模块的类型转化子模块 ...

  3. 005-Spring Boot配置分析-配置文件application、EnvironmentPostProcessor、Profiles

    一.配置文件application 默认配置文件application.propertie或者application.yml,可同时存在 application.propertie增加配置:local ...

  4. Spring加载加密的配置文件

    一.继承并实现自己的属性文件配置器类 /** * 带加密的Spring属性配置文件扩展类 * 加密方式:AES * @author simon * */ public class EncryptPro ...

  5. 管道符和作业控制、shell变量、环境变量配置文件 使用介绍

    第6周第1次课(4月23日) 课程内容: 8.6 管道符和作业控制 8.7/8.8 shell变量8.9 环境变量配置文件扩展bashrc和bash_profile的区别 http://ask.ape ...

  6. Spring Boot 2.4 配置文件将加载机制大变化

    Spring Boot 2.4.0.M2 刚刚发布,它对 application.properties 和 application.yml 文件的加载方式进行重构.如果应用程序仅使用单个 applic ...

  7. 在spring boot使用总结(九) 使用yaml语言来写配置文件

    yaml是专门用来写配置文件的语言.使用yaml来写配置文件扩展性比较强而且十分方便.spring boot支持使用yaml语言来写配置文件,使用snakeyaml库来读取配置文件.spring bo ...

  8. Docker Compose配置文件详解(V3)

    Docker Compose配置文件是Docker Compose的核心,用于定义服务.网络和数据卷.格式为YAML,默认路径为./docker-compose.yml,可以使用.yml或.yaml扩 ...

  9. SQLdiag-初识

    SQLdiag是一个命令行实用工具,默认情况下,在C:\Program Files\Microsoft SQL Server\100\Tools\Binn目录下可用.首先我们打开SQLdiag.exe ...

  10. SQL Server自动化运维系列——关于数据收集(多服务器数据收集和性能监控)

    需求描述 在生产环境中,很多情况下需要采集数据,用以定位问题或者形成基线. 关于SQL Server中的数据采集有着很多种的解决思路,可以采用Trace.Profile.SQLdiag.扩展事件等诸多 ...

随机推荐

  1. 虚拟机下CentOS找不到网卡eth0的解决方法

    1. vi /etc/sysconfig/network-scripts/ifcfg-eth0 2. 将其中的ONBOOT属性改成yes即可   2015-8-3更新: 今天发现通过VirtualBo ...

  2. Apache Spark源码走读之2 -- Job的提交与运行

    欢迎转载,转载请注明出处,徽沪一郎. 概要 本文以wordCount为例,详细说明spark创建和运行job的过程,重点是在进程及线程的创建. 实验环境搭建 在进行后续操作前,确保下列条件已满足. 下 ...

  3. DS实验题 Dijkstra算法

    参考:Dijkstra算法 数据结构来到了图论这一章节,网络中的路由算法基本都和图论相关.于是在拿到DS的实验题的时候,决定看下久负盛名的Dijkstra算法. Dijkstra的经典应用是开放最短路 ...

  4. DS实验题 sights

    算法与数据结构实验题 6.3 sights ★实验任务 美丽的小风姑娘打算去旅游散心,她走进了一座山,发现这座山有 n 个景点, 由于山路难修,所以施工队只修了最少条的路,来保证 n 个景点联通,娇弱 ...

  5. PHP 随机显示

    <?php  print_r(    array_rand(      array(        "新春快乐"=>"",        " ...

  6. 给Android程序员的六个建议

    给Android程序员的六个建议 分类: 安卓相关2015-07-14 23:58 177人阅读 评论(0) 收藏 举报 android程序员 如果你一年前写的代码 , 在现在看来你还感觉写的很不错 ...

  7. Yii源码阅读笔记(六)

    组件(component),是Yii框架的基类,实现了属性.事件.行为三类功能,如果需要事件和行为的功能,需要继承该类,不需要可直接继承Object类: namespace yii\base; use ...

  8. DML以及DQL的使用方法

    DML:数据操作语言 1.插入insert into 单行插入:insert into 表名 (字段名, 字段名,...) values (值, 值, ...) 注:值列表要和字段列表相匹配. ins ...

  9. Bluetooth Low Energy介绍

    目录 1. 介绍 2. 协议栈 3. 实现方案 3.1 硬件实现方案 3.2 软件实现方案 1. 介绍 Bluetooth low energy,也称BLE(低功耗蓝牙),在4.0规范中提出 BLE分 ...

  10. WGZX:javaScript 学习心得--2

    转贴javascript心得(二) 标签: javascriptajaxweb开发htmlfirefox框架 2008-09-11 10:56 636人阅读 评论(0) 收藏 举报  分类: UI(2 ...