sql server profiler用数据库跟踪做优化

有时候需要了解Sql Server 2005的运行状态,特别是对数据库DBA来讲。比如了解谁在用这个数据库,数据库是死锁情况。
  以下是两个简单的方法:
  1、sp_who,查看用户,存储过程,直接运行就可以。
  2、select * from syslockinfo,系统视图,查看锁使用情况。

  其实,我们还可以通过系统视图连接其它相关的详细信息,特别是“动态管理视图(DMV)”,就是在系统试图里以"dm_"开头的系统视图。如sys.dm_exec_sessions:

   sys.dm_exec_requests视图。通过查看blocking_session_id字段了解阻塞的进程。如果字段是非空的, session_id字段标识的那个会话就是被另一个由blocking_session_id字段标识的会话阻塞了。现在,回到同一个视图,查询阻塞会 话的sql_handle字段的数值。将这个字段作为sys.dm_exec_sql_text函数的输入,检索阻塞了其他进程的T-SQL连接。

   现在,你如何获知被阻塞的资源?跳过“os”(SQLOS)视图分类,查询sys.dm_os_waiting_tasks视图。这个视图恰好拥有一个 名为session_id的字段,――惊喜,惊喜――你可以用它来使该行与sys.dm_exec_requests视图的 blocking_session_id字段产生关联。


一、启动sql server profiler 

1) 启动方法如下图,在SQL Server Management Studio中-->“工具”菜单上选择“sql server profilter” 


2) 在“开始”菜单上,选择“所有程序”――>“microsoft sql server 2005”――>“性能工具”――>“sql server profilter”命令。 

二、创建和修改跟踪 

1)在“文件”菜单上,选择“新建跟踪”命令,或者单击工具栏上的“新建跟踪”按钮。如下图。 


2)在“跟踪名称”文本框中,输入跟踪的名称。如下图

一般选择保存到文件。

3)在“事件选择”选项卡界面中选择要监控的事件。如下图 


       我选择了存储完成调用时事件与TSQL语句完成时事件。这两个事件是查看Tsql执行性能损耗的最重要的两个事件,如下图, 


4)点击“列筛选器”,启动“编辑筛选器”对话框。可以使用此对话框编辑数据列筛选器。 

(1)设置Tsql或存储过程执行时间超过5秒的sql语句或存储过程。 


(2) 设置所要跟踪的数据库名称 


还可以点击“组织列”,更新跟踪中列的顺序,并按一列或多列对结果分组。 

5)如上让sql server profilter运行一定时间,一般是4小时以上,最好是24小时。然后把收集到的事件数据存储到表或文件中。


你可能感兴趣的:(数据库,server,动态)