none
dm_exec_sql_text查询出来的执行脚本如何查看脚本参数的值 RRS feed

  • 问题

  • 各位大哥

          小弟今天使用dm_exec_sql_text这个函数查询出来了某段时间数据库执行的脚本,但脚本中的所有参数值都是使用参数传递的,有木有方法查看到这些参数的值;小弟求教了。

    /*

    MSDN提供的代码,自己修改了一下

    */

    SELECT qs.[sql_handle],qs.[creation_time],
        SUBSTRING(st.text, (qs.statement_start_offset/2)+1, 
            ((CASE qs.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) AS st
    WHERE qs.creation_time between '2014-10-14 10:00:00' and '2014-10-14 12:00:00'
    ORDER BY qs.[creation_time] DESC;

    2014年10月14日 6:57

答案

全部回复

  • 至少我没找到,真正要排查的时候,都是用 profile 再去实际跟踪一次
    • 已标记为答案 Ronins 2014年10月16日 2:17
    2014年10月14日 8:20
  • 用 sys.dm_exec_sql_text是无办法查看实际参数的,因为他代入的是sql_handle或者plan_handle

    msdn讲得很清楚

    http://msdn.microsoft.com/zh-cn/library/ms181929.aspx

    还有就是像周建大侠说的使用profile来跟踪

    2014年10月15日 1:29
  • 非常谢谢。
    2014年10月15日 6:32
  • 唉,之前的公司有些东西没有完全交给我,所以只有我自己看他们在处理某些问题上是如何操作数据库的,生产环境中使用profile有影响不?不过我已经查的差不多了,多谢两位的回答。
    2014年10月15日 6:35
  • Profiler will affect certain queries' performance especially if query uses user defined function, may double execution time in that case.
    2014年10月15日 13:09
  • 使用Profiler做好Filter可以减小对性能的影响。

    Please Mark As Answer if it is helpful.

    2014年10月16日 1:24