查找最多执行哪个查询

时间:2016-06-05 19:12:25

标签: java hibernate

我是Hibernate的新手。我如何找到最多执行哪个查询?

2 个答案:

答案 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

UPDATE:

要查找执行最多的查询:您可以按照

此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查询并完全按照你的意愿行事,但它并不是免费的。如果您想尝试,可以使用评估版。