日期:2014-05-17  浏览次数:20758 次

监控所有本机SQL语句执行的时间,每一条语句
请问怎么自己写一个程序(C#,DELPHI,VB..),监控本机所有执行SQL语句和执行时间。存储过程要的到每一条语句的时间。
我是想对我开发的程序进行优化。因为有很多。谢谢了!
QQ:472231001
------解决方案--------------------
比如在本机执行SQL。
SELECT * FROM TABLE1;SELECT * FROM TABLE2 ; EXECUTE PRO1 'XXX';

我得到的信息是:
1,SELECT * FROM TABLE1 -- 1.2S
2,SELECT * FROM TABLE2 -- 0.12S
3, EXECUTE PRO1 'XXX' --4S
   DETAILS:   SELECT * FROM TABLE3 -- 1S
              SELECT * FROM TABLE4 -- 3S

比较详细的执行代码和时间。
------解决方案--------------------
给你几段代码,2005以后适用,不用开发程序:
1、查找目前SQL Server所执行的SQL语法,并展示资源情况:
SELECT  s2.dbid ,
         DB_NAME(s2.dbid) AS [数据库名] ,
         --s1.sql_handle ,
         ( SELECT TOP 1
                     SUBSTRING(s2.text, statement_start_offset / 2 + 1,
                               ( ( CASE WHEN statement_end_offset = -1
                                        THEN ( LEN(CONVERT(NVARCHAR(MAX), s2.text))
                                               * 2 )
                                        ELSE statement_end_offset
                                   END ) - statement_start_offset ) / 2 + 1)
         ) AS [语句] ,
         execution_count AS [执行次数] ,
         last_execution_time AS [上次开始执行计划的时间] ,
         total_worker_time AS [自编译以来执行所用的 CPU 时间总量(微秒)] ,
         last_worker_time AS [上次执行计划所用的 CPU 时间(微秒)] ,
         min_worker_time AS [单次执行期间曾占用的最小 CPU 时间(微秒)] ,
         max_worker_time AS [单次执行期间曾占用的最大 CPU 时间(微秒)] ,
         total_logical_reads AS [总逻辑读] ,
         last_logical_reads AS [上次逻辑读] ,
 &