【问题标题】:MySQL query log equivalent for Microsoft SQL server [duplicate]等效于 Microsoft SQL 服务器的 MySQL 查询日志 [重复]
【发布时间】:2013-03-25 13:59:31
【问题描述】:

MySQL 可以选择记录对数据库执行的查询。 通过使用 SQL Server Profiler,Microsoft SQL Server 具有相同的选项。但是,我使用 JPA (Hibernate) 作为 ORM 工具,我可以看到查询已转换为存储过程。

我可以看到很多以下几行:

exec sp_execute 6, 8
exec sp_execute 7, 8
exec sp_execute 4, 8

...这使得调试SQL语句变得困难(因为我必须寻找相应的存储过程)

知道如何快速查看真正的 SQL 查询吗?

谢谢! 乔辰

【问题讨论】:

    标签: sql sql-server hibernate jpa


    【解决方案1】:

    您可以使用 DMV 查看最近运行的查询,这将为您提供最近一天执行的查询,我认为这也应该为您提供有关查询文本的更多详细信息:

    SELECT        SQLTEXT.text, STATS.last_execution_time
    FROM          sys.dm_exec_query_stats STATS
    CROSS APPLY   sys.dm_exec_sql_text(STATS.sql_handle) AS SQLTEXT
    WHERE         STATS.last_execution_time > GETDATE()-1
    ORDER BY      STATS.last_execution_time DESC
    

    您显然可以更改 where 子句以获取您感兴趣的日期范围。

    【讨论】:

    • steoleary:谢谢,这是一个开始。通过调整 WHERE 子句,我可以找到我正在寻找的 quer(y)(ies)。太糟糕了,参数的实际值不可用(这是合乎逻辑的,因为它们被传递给存储过程)
    猜你喜欢
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多