搜狐首页 科技 神探狄仁杰4

手机搜狐

SOHU.COM

SQL Server急救包入门教程

如果你的SQLServer数据库运行起来十分缓慢甚至逐渐停止了,恰巧又赶上了你的数据库管理员在休假,你又不知道该如何是好,那么这篇文章会帮助你从学习使用SQLServer急救包(SQLServerFirstResponderKit)开始解决问题。这个开源项目包含了一系列能够帮助数据管理员或者临时数据管理员的脚本,能够修复和调整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。这个工具能够以配置数据库的方式识别出一些常见的问题。每一个检查到的问题都包括如何解决这个问题的信息和一个优先级,这个优先级指明了该以怎样的顺序解决这个问题。

精选