Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 每个数据库运行时间最长的查询_Sql_Sql Server_Sql Server 2005 - Fatal编程技术网

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