0

MySQLには、データベースに対して実行されたクエリをログに記録するオプションがあります。Microsoft SQL Serverには、SQLServerプロファイラーを使用した同じオプションがあります。ただし、ORMツールとしてJPA(Hibernate)を使用しており、クエリがストアドプロシージャに変換されていることがわかります。

私は次の行をたくさん見ることができます:

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

...これによりSQLステートメントのデバッグが困難になります(対応するストアドプロシージャを探す必要があるため)

実際のSQLクエリをすばやく確認する方法はありますか?

ありがとう!Jochen

4

1 に答える 1

0

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句を変更して、関心のある日付範囲を取得できます。

于 2013-03-25T15:32:02.597 に答える