数据库优化是作为运维乃至DBA所必备的常规技能。
在本篇中我们将就SQL SERVER 2005进行说明,使用到的工具:
①Sql Server Profiler:用于服务器捕获sql server 2005事件及分析性能瓶颈。
②数据库引擎优化顾问:分析在一个或多个数据库中运行的工作负荷的性能效果,并给出优化建议和方法。
以上两个工具均为Sql Server 2005自带。
首先需要使用SQL Server Profiler进行数据库跟踪,通常这个时间为4-24个小时。
打开方法:SQL Server Management Studio中–>“工具”–>“sql server profilter”
新建一个数据库跟踪,使用模版的时候需要注意一下,不同的跟踪模版的应用范围是有区别的,官方阐述如下表
模板名称 | 模板用途 |
---|---|
SP_Counts | 捕获一段时间内存储过程的执行行为。 |
Standard | 创建跟踪的通用起点。 捕获所运行的全部存储过程和 Transact-SQL 批处理。 用于监视常规数据库服务器活动。 |
TSQL | 捕获客户端提交给 SQL Server 的所有 Transact-SQL 语句及其发出时间。 用于调试客户端应用程序。 |
TSQL_Duration | 捕获客户端提交给 SQL Server 的所有 Transact-SQL 语句及其执行时间(以毫秒位单位),并按持续时间对其进行分组。 用于识别执行速度慢的查询。 |
TSQL_Grouped | 捕获提交给 SQL Server 的所有 Transact-SQL 语句及其发出时间。 信息按提交语句的用户或客户端分组。 用于调查某客户端或用户发出的查询。 |
TSQL_Locks | 捕获客户端与异常锁事件一起提交到 SQL Server 的 Transact-SQL 语句。 用于排除死锁、锁超时和锁升级事件的故障。 |
TSQL_Replay | 捕获重播跟踪所需的 Transact-SQL 语句的详细信息。 用于执行迭代优化,例如基准测试。 |
TSQL_SPs | 捕获有关执行的所有存储过程的详细信息。 用于分析存储过程的组成步骤。 如果您怀疑过程正在重新编译,请添加 SP:Recompile 事件。 |
Tuning | 捕获有关存储过程和 Transact-SQL 批处理执行的信息。 用于生成跟踪输出,数据库引擎优化顾问可以将该输出用作工作负荷来优化数据库。 |
这里我们选择Standard 默认即可。
勾选保存到文件或数据库表,这里根据情况自行选择。
接下来点击事件选择器选项卡,出现如下图界面:
此界面用于配置跟踪内容,同时列筛选器用于设置跟踪条件,点击相应的选项都会有对应的中文说明,这里就不另外介绍了。
点击运行,如图 SQL Server Profiler 已开始对数据库进行跟踪
在跟踪中我们可以清除的看到数据库的执行语句及所占用的cpu比率以及执行时间等信息。通常这个过程持续4-24个小时候即可采样到我们需要的跟踪信息。
以上即为 SQL Server Profiler 的整个跟踪过程。
接下来我们将就跟踪后记录的信息使用数据库引擎优化顾问进行分析。
点击菜单栏的工具–>数据库引擎优化顾问,打开如下图界面,加载跟踪文件并设置待优化的数据库
点击开始分析,数据库引擎优化顾问即开始对跟踪信息进行分析,分析时间视跟踪记录量来定,通常过程都比较长,耐心等待一段时间后,即可生成优化方案。
BeiTown
2013.06.21
Tags: SQL SERVER, Sql Server Profiler, 数据库引擎优化顾问