Sql 每个数据库运行时间最长的查询
我用的是:Sql 每个数据库运行时间最长的查询,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,我用的是: SELECT * FROM sys.dm_exec_query_stats s CROSS APPLY sys.dm_exec_sql_text( s.sql_handle ) t ORDER BY s.max_elapsed_time DESC 获取服务器级别上运行时间最长的查询 如何获得每个数据库运行时间最长的查询?我想一次只关注一个数据库 SELECT * FROM database1.dbo.table JOIN database2.db
SELECT
*
FROM
sys.dm_exec_query_stats s
CROSS APPLY sys.dm_exec_sql_text( s.sql_handle ) t
ORDER BY
s.max_elapsed_time DESC
获取服务器级别上运行时间最长的查询
如何获得每个数据库运行时间最长的查询?我想一次只关注一个数据库
SELECT * FROM database1.dbo.table JOIN database2.dbo.table
上面的查询在哪个数据库中运行?如果执行时的当前上下文是database3呢?如果它在数据库4中执行一次,在数据库5中执行一次呢
其思想是执行计划不绑定到数据库 提及的BOL条目
编辑:我没有试过。我通常担心服务器负载…听起来您好像在尝试调整数据库。运行时间最长的查询可能不是成本最高的查询,也不是从中受益最多的查询
您应该阅读SQL Server Profiler,以确定使用最多资源的查询并对其进行处理。他可能没有任何跨数据库查询,或者他不关心这些查询。您好,我想查看属于一个数据库的所有查询。这有帮助吗?请记住,如果一个查询通过连接跨越多个数据库,这将不起作用。
SELECT *
FROM
sys.dm_exec_query_stats s
CROSS APPLY
sys.dm_exec_sql_text( s.sql_handle ) t
CROSS APPLY
sys.dm_exec_query_plan(s.plan_handle) foo
WHERE
foo.dbid = DB_ID('My_DB')
ORDER BY
s.max_elapsed_time DESC