如果正式运行,可能抓不到,但是如果测试的话,你可以只保证打开一个客户端(也就是网页),然后用Profiler来抓

解决方案 »

  1.   

    就SQL SERVER自带的工具来说 是SQL Profiler当然还有一些第三方工具来做。
      

  2.   


    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
    GO
    USE [master] SELECT TOP 20 
    CAST(qs.total_elapsed_time / 1000000.0 AS DECIMAL(28, 2)) 
    AS [Total Duration (s)] 
    , CAST(qs.total_worker_time * 100.0 / qs.total_elapsed_time 
    AS DECIMAL(28, 2)) AS [% CPU] 
    , CAST((qs.total_elapsed_time - qs.total_worker_time)* 100.0 / 
    qs.total_elapsed_time AS DECIMAL(28, 2)) AS [% Waiting] 
    , qs.execution_count 
    , CAST(qs.total_elapsed_time / 1000000.0 / qs.execution_count 
    AS DECIMAL(28, 2)) AS [Average Duration (s)] 
    , SUBSTRING (qt.text,(qs.statement_start_offset/2) + 1,
    ((CASE WHEN qs.statement_end_offset = -1 
    THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2 
    ELSE qs.statement_end_offset 
    END - qs.statement_start_offset)/2) + 1) AS [Individual Query] 
    , qt.text AS [Parent Query] 
    , DB_NAME(qt.dbid) AS DatabaseName 
    , qp.query_plan 
    FROM sys.dm_exec_query_stats qs 
    CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt 
    CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp 
    WHERE qs.total_elapsed_time > 0 and DB_NAME(qt.dbid) ='xxxxxxxxxxxxxx' -- your database name 
    ORDER BY qs.total_elapsed_time DESC 
      

  3.   

    http://bbs.csdn.net/topics/390738580 
    可以参考这个呢。
      

  4.   

    profiler trace and database audit can do this. 
      

  5.   

    有木有具体的第三方工具可以追踪到当前 客户端发出 的sql语句和请求。 当有多个客户端发出sql请求时,profiler trace抓的信息太多 
      

  6.   

    用SQL Profiler工具跟踪,并设定过滤条件为hostname=[客户端机器名],这样就只跟踪出该客户端所执行的所有TSQL语句..