现在要对SQL Server进行性能监控,不知道如何获取此类性能数据。例如:缓冲区命中率、CPU利用率、表空间(不知道有没有)使用率等等。希望大家提供些关于MS Sql Server数据库的性能监控方面的资料。

解决方案 »

  1.   

    SQL 事件探查器数据列
    SQL 事件探查器使您得以在创建模板时选择数据列。这些数据列表现在运行跟踪时希望返回的信息。在 SQL 事件探查器中显示的数据可以按事件发生的顺序显示,也可以按一个数据列或数据列组合分组显示。例如,若要识别执行时间最长的用户事件,请按 DBUserName 和 Duration 对事件进行分组。SQL 事件探查器将显示每个事件的执行时间。该功能类似于 Transact-SQL 中的 GROUP BY 子句。有关更多信息,请参见 GROUP BY。说明  不能按 StartTime 或 EndTime 数据列进行分组。
    如果 SQL 事件探查器可以连接到捕获跟踪数据时所在的 Microsoft® SQL Server™ 实例,则将尝试用数据库、对象和索引的名称分别填充 Database ID、Object ID 和 Index ID 数据列。否则,将显示标识号 (ID)。下表描述默认情况下选定的 SQL 事件探查器数据列。数据列 列号 描述 
    Application Name1 10 创建与 SQL Server 实例的连接的客户端应用程序名。 该列由应用程序传递的值填充,而不是由所显示的程序名填充。  
    Binary Data 2 与在跟踪中捕获的事件类相关的二进制值。  
    ClientProcessID1 9 由主机计算机分配给进程的 ID,在该进程中客户应用程序正在运行。如果客户端提供客户端进程 ID,则填充此数据列。  
    Column Permissions 44 表明是否已设置了列权限。分析语句文本,以确定将哪些权限应用到了哪些列。  
    CPU  18 事件所使用的 CPU 时间总计(以毫秒为单位)。  
    Database ID1 3 USE database 语句所指定的数据库 ID,如果没有对给定实例发出过 USE database 语句,则是默认数据库。如果在跟踪内捕获 Server Name 数据列且服务器可用,则 SQL 事件探查器将显示数据库名。 通过使用 DB_ID 函数确定数据库的值。  
    DatabaseName 35 正在运行用户语句的数据库的名称。  
    DBUserName1 40 客户端的 SQL Server 用户名。 
    Duration  13 事件所花费的时间总计(以毫秒为单位)。  
    End Time  15 事件结束时的时间。启动事件的事件类(如 SQL:BatchStarting 或 SP:Starting)的该列不填充。  
    Error 31 给定事件的错误号。通常是存储在 sysmessages 中的错误号。 
    EventClass1 27 捕获的事件类类型。  
    EventSubClass1 21 事件子类的类型,提供有关每个事件类的进一步信息。例如,Execution Warning 事件类的事件子类值代表执行警告的类型: 
    1 = 查询等待。查询必须等待资源(如内存)才能执行。
    2 = 查询超时。查询在等待执行所需的资源时超时。所有事件类的该数据列均不填充。
     
    FileName 36 所修改的文件的逻辑名称。  
    Handle 33 ODBC、OLE DB 或 DB-Library 所用的整数,用以协调服务器的执行。  
    Host Name1 8 正运行客户端的计算机名。如果客户端提供主机名,则填充此数据列。若要确定主机名,请使用 HOST_NAME 函数。 
    Index ID 24 受事件影响的对象上的索引 ID。若要确定对象的索引 ID,请使用 sysindexes 系统表的 indid 列。  
    Integer Data 25 与在跟踪中捕获的事件类相关的整型值。  
    LoginName 11 用户的登录名(SQL Server 安全登录或 Microsoft Windows® 登录凭据,格式为 DOMAIN\Username)。 
    LoginSid1 41 登录用户的安全标识号 (SID)。可以在 master 数据库的 sysxlogins 表中找到该信息。对于服务器中的每个登录,SID 是唯一的。  
    Mode 32 不同事件所用的整数,用于描述事件已接收或要请求的状态。  
    NestLevel 29 表示 @@NESTLEVEL 所返回的数据的整数。  
    NT Domain Name1 7 用户所属的 Microsoft Windows NT® 4.0 或 Windows 2000 域。  
    NT User Name1 6 Windows NT 4.0 或 Windows 2000 用户名。 
    Object ID 22 系统分配的对象 ID。 
    ObjectName 34 引用的对象名。 
    ObjectType 28 表示事件中涉及的对象类型的值。该值对应于 sysobjects 中的 type 列。 
    Owner Name 37 对象所有者的数据库用户名称。 
    Permissions 19 表示所检查的权限类型的整型值。取值为: 
    1 = SELECT ALL
    2 = UPDATE ALL
    4 = REFERENCES ALL
    8 = INSERT
    16 = DELETE
    32 = EXECUTE(仅限于过程)
    4096 = SELECT ANY (至少一列)
    8192 = UPDATE ANY
    16384 = REFERENCES ANY
     
    Reads 16 服务器代表事件执行的逻辑磁盘读取数。 
    RoleName 38 要启用的应用程序角色名。 
    Server Name1 26 跟踪的 SQL Server 实例名。 
    Severity 20 异常错误的严重级别。  
    SPID1 12 SQL Server 指派的与客户端相关的服务器进程 ID。 
    Start Time1 14 启动事件的时间(可用时)。 
    State 30 等同于错误状态代码。 
    Success 23 表示事件是否成功。取值包括: 
    1 = 成功。
    0 = 失败例如,1 表示权限检查成功,0 表示该检查失败。
     
    TargetLoginName 42 对于以登录为目标的操作(例如,添加新登录),是目标登录的名称。 
    TargetLoginSid 43 对于以目标为登录的操作(例如,添加新登录),是目标登录的 SID。 
    TargetUserName 39 对于以数据库用户为目标的操作(例如授予用户权限),是该用户的名称。 
    TextData 1 与跟踪内捕获的事件类相关的文本值。但是,如果正在跟踪参数化查询,则不以 TextData 列中的数据值显示变量。 
    Transaction ID 4 系统分配的事务 ID。 
    Writes 17 服务器代表事件执行的物理磁盘写入数。 
      

  2.   

    在帮助中输入:SQL 事件探查器去查相关资料.
      

  3.   

    控制面板里,性能监视器,台湾胡百敬的 sql server 2005调优中有比较详细的介绍。
    当然,帮助里有现成的,呵呵
      

  4.   

    顺便说一下,性能监视器在控制面板,管理工具里,没有的话,添加windows组件。
    表空间可以通过dmv看吧
      

  5.   

    另外,是否是通过SQL语句可以直接得到性能数据?
      

  6.   

    dm_db_*:数据库和数据库对象dm_exec_*:执行用户代码和关联的连接dm_os_*:内存、锁定和时间安排dm_tran_*:事务和隔离dm_io_*:网络和磁盘的输入/输出
      

  7.   

    推荐使用windows性能计数据来做数据监控,将数据存在sql server 数据库中
    这样出报表或图表或对比都比较方便.
    也可以采用第三方的软件做来监控.
      

  8.   

    利用typeperf工具收集SQL Server性能数据
    http://blog.csdn.net/HEROWANG/archive/2009/02/19/3910677.aspx
      

  9.   


    这个是SQL提供的动态视图
    select * from dm_io_* 就行了
      

  10.   

    建议了解
    http://blog.csdn.net/claro/archive/2009/03/06/3962966.aspx
      

  11.   


    我还是没有找到,请问,不同的版本的SQL Server是否都有这些视图?我在网上看到有些人使用sp_monitor之类的存储过程来取得SQL Server数据库的性能数据。该帖再加100分。有效的讨论我会多给分。
      

  12.   

    SSMS SP2有很多定义好的直观性能报表,直接在界面上点出右键菜单找,就有很多
      

  13.   

    up
    http://blog.csdn.net/HEROWANG/archive/2009/02/19/3910677.aspx
      

  14.   

    http://blog.csdn.net/HEROWANG/archive/2009/02/19/3910677.aspx