我是Hibernate的新手。我如何找到最多执行哪个查询?
答案 0 :(得分:0)
启用将所有生成的SQL语句记录到控制台
<!--hibernate.cfg.xml -->
<property name="show_sql">true</property>
Display Hibernate SQL to console – show_sql , format_sql and use_sql_comments
要查找执行最多的查询:您可以按照
此DMV将显示自上次重新启动SQL Server以来按最高执行计数排序的实际查询。这些查询可以是adhoc,也可以是驻留在存储过程中的查询。这些很重要,因为通常优化这些将会在性能方面产生巨大的效果。为了找到已经执行了很多的具体程序,请参阅Most Executed Procedures DMV。
SELECT TOP 50
qs.execution_count
,OBJECT_NAME(objectid)
,query_text = SUBSTRING(
qt.text,
qs.statement_start_offset/2,
(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)
,qt.dbid
,dbname = db_name(qt.dbid)
,qt.objectid
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
ORDER BY qs.execution_count DESC
答案 1 :(得分:0)
您应该查看分析器。我知道jprofiler可以监视hibernate查询并完全按照你的意愿行事,但它并不是免费的。如果您想尝试,可以使用评估版。