如果你的SQL Server数据库运行起来十分缓慢甚至逐渐停止了,恰巧又赶上了你的数据库管理员在休假,你又不知道该如何是好,那么这篇文章会帮助你从学习使用SQL Server急救包(SQL Server First Responder Kit)开始解决问题。这个开源项目包含了一系列能够帮助数据管理员或者临时数据管理员的脚本,能够修复和调整SQL Server实例至正常状态。

这些脚本以存储过程(stored procedures)的形式安装在你的服务器的“主”(master)数据库中。它们都以 “sp_” 为前缀,这能够保证它们在你所能看到任何一个数据库中都能被调用。

注意:SQL Server总是首先搜索主数据库中以 “sp_” 开头的存储过程,因此如果标准的存储过程,即特定数据库的存储过程使用那个前缀的话,会略微影响服务器的速度,因为它被放在了错误的位置。

sp_BlitzWho: 是谁引起了当前的问题?

当数据库出错的时候你首先应该使用这个工具。它会告诉你谁被连接了,它们正在执行什么,并且会告诉你它们拖慢数据库的程度。

如果你发现了一个需要被关闭的无响应的程序,你可以使用 “kill” 命令加上相关的会话 id 来杀掉它。

如果问题还没有解决,那么你可以试试sp_BlitzFirst。

sp_BlitzFirst: 你在等待什么?

sp_BlitzFirst工具能帮助你发现你的数据库在等待什么。在下面的例子中你能看到 #1 问题除了SQL Server消耗了太多的 CPU 时间之外,还有其他的许多问题。

除非你在一个开发者的机器上来测试脚本,否则这些诊断信息真的很不常见。常见的是你会发现一个或更多的 “等待状态(wait stats)” 问题。

在SQL Server中,所有可能减慢一条查询的速度的都被追踪为“等待状态(wait stats)”。它包括硬盘等待、网络I/O等待和列粒度上或表粒度上的锁等待以及等待CPU或者内存资源等等。输出列表中的链接会帮助你处理常见的等待类型,但是它能追踪上百种不同的等待类型,其中的一些影响系统性能的特定等待状态就不那么容易能找到相关信息了。

sp_Blitz: 这个数据库配置正确了吗?

当你第一次接管了一台数据库服务器时,你应该用到的工具就是sp_Blitz。这个工具能够以配置数据库的方式识别出一些常见的问题。每一个检查到的问题都包括如何解决这个问题的信息和一个优先级,这个优先级指明了该以怎样的顺序解决这个问题。

从上边的图片你能看到,有许多数据库长时间没有备份或者长时间没有进行崩溃检查。

它能检测到的问题还包括:

  • 不良配置,尤其是“由默认引起的错误(wrong by default)”,例如并行查询阀值(cost threshold for parallelism)的默认配置错误。

  • 危险文件位置,例如在系统盘上存储事务日志。

  • 非生产许可证(Non-production licenses)的使用。

  • 对数据库崩溃、内存不足等警告的忽略。

  • 通用安全设置错误,例如错误的数据库所有者权限。

sp_BlitzCache: 哪些条查询需要进行调整?

如果当前的问题都已经解决了,你就可以开始探索一些主动提高性能的方法了。一个叫做sp_BlitzCache的工具就是用于此的。这个工具用于监控SQL Server的查询计划缓存(query plan cache),它能监测哪些查询对数据库超时有最大的影响。它也能警告你一些查询中的常见问题,例如通过标量运算和隐式类型转换来进行列计算。

sp_BlitzFirst和sp_BlitzCache最主要的区别就是sp_BlitzFirst监测的是实时发生的事件。相反的是,sp_BlitzCache监测的是历史数据,它能帮你识别出一个趋势,因此它不需要你当场找出存在问题的查询操作。

sp_BlitzIndex: 我的索引都是怎么工作的?

如果性能问题看起来是系统性的,而不是针对特定的查询,你需要检查的下一个地方就是索引了。索引丢失会造成严重的性能问题是众所周知的,它会造成查询时间呈十倍、百倍甚至千倍的增长。

一个同样重要的问题是过多的索引。除了告诉你丢失的索引外,sp_BlitzIndex也会告诉你有可能在维护一个索引上花费的时间比使用它花费的时间还要长。不必要的索引维护不仅会减慢写入速度,还会产生除缓存以外的更多的数据,这些都会大大减慢不相关查询的速度。

SQL Server急救包最早由Brent Ozar Unlimited开发,现在它已经是通过MIT协议的一个开源项目了。

SQL Server 急救包(First Responder Kit)入门教程相关推荐

  1. sql server中创建链接服务器图解教程

    转自sql server中创建链接服务器图解教程 1.展开服务器对象-->链接服务器-->右击"新建链接服务器" 注意:必须以数据库管理员身份登录(通常也就是sa帐号) ...

  2. Sprite Kit 入门教程

    Sprite Kit 入门教程  Ray Wenderlich on September 30, 2013 Tweet 这篇文章还可以在这里找到 英语, 日语 If you're new here, ...

  3. Sql Server 2012 中文软件和安装教程

    下载链接: http://www.imsdn.cn/page/2/?s=sql+server+2012 注意事项一:教程可以参考百度到的2012的安装教程. 注意事项一:选择混合登录模式,设置好自己的 ...

  4. SQL Server 2012 下载和安装详细教程(转载)

    SQL Server 2012 下载和安装详细教程 1.软件下载 2.软件安装 3.软件验证 1.软件下载 (1)官网地址 https://www.microsoft.com/zh-cn/sql-se ...

  5. SQL Server 2008 Express 安装配置详细教程

    SQL Server 2008 Express 安装配置详细教程 本文出自:http://it.agoit.com/thread-468537-1-1.html 下载 可以访问 Microsoft 下 ...

  6. Microsoft SQL server 2008 R2图文+视频安装教程

    558idc.com运维教程之Microsoft SQL server 2008 R2图文+视频安装教程 安装环境:   服务器操作系统:Window server 2008 r2 enterpris ...

  7. SQL Server 数据库分离与附加(图文教程)

    SQL Server 数据库分离与附加(图文教程),需要的朋友可以参考一下 一.概述 SQL Server提供了"分离/附加"数据库."备份/还原"数据库.复制 ...

  8. heidiSQL怎么连接JAVA_Heidisql连接sql server后如何使用-Heidisql使用教程 - 河东软件园...

    Heidisql是一款数据库连接工具,它的连接方法在上一次的教程中小编已经给大家演示过了.大家都知道这是一款连接工具,可以和很多的主流数据库进行连接,当然在连接之后我们也可以使用Heidisql来完成 ...

  9. SQL Server中的执行引擎入门

    简介 当查询优化器(Query Optimizer)将T-SQL语句解析后并从执行计划中选择最低消耗的执行计划后,具体的执行就会交由执行引擎(Execution Engine)来进行执行.本文旨在分类 ...

最新文章

  1. pandas使用drop_duplicates函数基于subset参数指定的数据列子集删除重复行、并设置keep参数保留重复行中的最后一个数据行
  2. 【Netty】option(ChannelOption.SO_KEEPALIVE, true) socket参数详解:KeepAlive
  3. linux下mysql修改root密码
  4. Struts 2 --ONGL介绍
  5. OpenGL 分层渲染Layered Rendering的实例
  6. php强制cookies,php Cookies操作类(附源码)
  7. python字典键值对转化为相应的变量名和变量值
  8. total video converter 绿色_志愿服务清理杂草 牵手绿色生态文明
  9. 使用 mybatis + flying + 双向相关建模 的电商后端
  10. Js页面截取小数点后两位
  11. 读书笔记:《稻盛和夫 阿米巴经营 人人都是经营的主角》
  12. CBoard 0.4.2环境搭建
  13. 在word中做复选框打对勾钩
  14. iOS中打一个包上传后,iTunes中找不到上传的包的解决方法
  15. 没有执行此操作所需的足够可用空间。_一文详解 MySQL 高可用之 DRBD | 原力计划...
  16. 电子设计大赛作品_竞赛通知|SECE电子设计大赛
  17. JavaScript将List转Tree
  18. 新闻/媒体 发布接口定制_每日新闻摘要,19/4/14:老大哥在看
  19. AndLua加密解密
  20. python 语音识别 离线_语音识别离线语音识别,SpeechRecognition

热门文章

  1. 游戏上线... 记录下...
  2. Beyond Compare中插入表格数据的教程
  3. [转]Excel导入异常Cannot get a text value from a numeric cell解决
  4. 基于HTML5手机上下滑动翻页特效
  5. Blazor University (3)组件 — 创建组件
  6. 使用C#快速生成二维码 | 真正跨平台方案
  7. Hello Blazor:(7)WebAssembly、Server模式你选哪种?小孩子才做选择!我用混合模式...
  8. 聊聊Interlocked.CompareExchange吧?
  9. 如何在 Windows 10 上安装 WSL 2
  10. C# WPF:把文件给我拖进来!!!