整个存储过程执行时花费大量时间,想用探查器跟踪一下一些Select、UPDATE、INSERT的执行效率
现在用探查器看到的只是整个存储过程的执行时间

解决方案 »

  1.   

    declare @dt1 datetime
    declare @dt2 datetimeset @dt1 = getdate()
    insert ...
    or
    update ...
    set @dt2 = getdate()print datediff( ss, @dt1, @dt2 )
      

  2.   

    请问SQL2005有事件探查器吗,我装的怎么没有呢,从那里可以找到啊?
      

  3.   

    Hi,
    0)查看SQL Server Management Studio面板的右下角 会显示一个查询(存储过程)执行的时间,登陆的loginname(登录名),spid(系统进程编号),Databasename(当前数据库名),Instance(数据库实例名)等信息.1)
    Microsoft SQL Server 2005 
    → Performance Tools
    → SQL Server Profiler
    新建Trace → 模板选择标准 →  选择Stored Procedure 和TSQL类型 ...2)DMV方式查看查询的相关信息SELECT  creation_time  
            ,last_execution_time 
            ,total_physical_reads
            ,total_logical_reads  
            ,total_logical_writes
            , execution_count 
            , total_worker_time
            , total_elapsed_time 
            , total_elapsed_time / execution_count avg_elapsed_time
            ,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
             ((CASE statement_end_offset 
              WHEN -1 THEN DATALENGTH(st.text)
              ELSE qs.statement_end_offset END 
                - qs.statement_start_offset)/2) + 1) AS statement_text
    FROM sys.dm_exec_query_stats AS qs
    CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
    ORDER BY total_elapsed_time / execution_count DESC;
      

  4.   

    监控 SQL Server (2005/2008) 的运行状况
    http://blog.csdn.net/downmoon/archive/2009/08/12/4440239.aspx