V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sike03
V2EX  ›  问与答

如何查看 SQL Server 执行的历史 SQL 语句记录?

  •  2
     
  •   sike03 · 2018-12-05 21:09:29 +08:00 · 7752 次点击
    这是一个创建于 2178 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我使用下面的语句查询,虽然查到了历史 SQL 记录。

    SELECT st.text as sql_statement,
           qs.creation_time as plan_last_compiled,
           qs.last_execution_time as plan_last_executed,
           qs.execution_count as plan_executed_count,
           qp.query_plan
    FROM sys.dm_exec_query_stats qs
    CROSS APPLY sys.dm_exec_sql_text(qs.plan_handle) st
    CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
    order by total_elapsed_time/execution_count desc
    

    但是由于我是参数化提交的 SQL 语句,所以只能查到类似 name=@name and phone=@phone 类型的语句。

    有没有办法查到 @name @phone 的真正的值?

    第 1 条附言  ·  2018-12-05 23:44:27 +08:00
    我再补充下我的问题:

    之所以想查到这些数据,是因为系统在做数据更新时,条件发生了错误,所以导致数据没有被写入数据库。

    所以想找回这些数据,能弥补这个错误带来的损失。

    之前大家所说的办法,我理解的是在进行系统调试时,用来跟踪和监控 SQL 的,所以可能不能解决问题。

    期待能有好的办法,拜托了。
    10 条回复    2018-12-06 11:34:17 +08:00
    Grapefruit
        1
    Grapefruit  
       2018-12-05 21:14:38 +08:00 via Android
    SQL Server Profiler 跟踪下?
    sike03
        2
    sike03  
    OP
       2018-12-05 21:17:50 +08:00
    @Grapefruit 想查的是没有 SQL Server Profiler 监控时产生的 SQL,所以好像不行。
    tomczhen
        3
    tomczhen  
       2018-12-05 21:34:06 +08:00 via Android
    商业数据库都有审计功能的,找到使用方法开启就行了。
    sike03
        4
    sike03  
    OP
       2018-12-05 21:40:42 +08:00
    @tomczhen 有没有办法找到开启审计之前的记录,因为没有预料到需要查询这些数据,所以之前也没有监控或者审计的准备。
    brotherlegend
        5
    brotherlegend  
       2018-12-05 22:22:22 +08:00 via iPhone
    马克我也有这个需求
    zro
        6
    zro  
       2018-12-05 22:41:27 +08:00
    记得是有自带工具监控查的啊。。
    tomczhen
        7
    tomczhen  
       2018-12-05 22:45:55 +08:00 via Android
    profiler 是有性能代价的,比较好的做法是在应用层记录日志。

    CDC 可以采集到数据变更,不过不确定能否跟踪到区分用户。
    mmdsun
        8
    mmdsun  
       2018-12-06 08:56:41 +08:00 via Android
    Lumigent Log Explorer 好像是可以查看的
    lcode
        9
    lcode  
       2018-12-06 11:29:41 +08:00
    binlog 看不到吗
    sike03
        10
    sike03  
    OP
       2018-12-06 11:34:17 +08:00
    @lcode sql server 好像不适用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3601 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 10:22 · PVG 18:22 · LAX 02:22 · JFK 05:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.