在使用MS SQL SERVER数据库的时候,有时候查询很慢,这里需要找出是哪条SQL查的很慢并进行相应的分析并优化数据库。那如何找个执行很慢的SQL呢?我们来看下吧。
方法/步骤
-
1
打开MS SQL SERVER 2008 点击左上角的【新建查询】打开一个新的查询标签页。
-
2
在查询窗口输入查询慢SQL的语句并点击【执行】按钮进行查询,需要注意的是这里要选择【master】数据库,否则会报错。SQL语句如下:
SELECT TOP 20
total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数],
qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)],
last_execution_time AS [最后一次执行时间],max_worker_time /1000 AS [最大执行时间(ms)],
SUBSTRING(qt.text,qs.statement_start_offset/2+1,
(CASE WHEN qs.statement_end_offset = -1
THEN DATALENGTH(qt.text)
ELSE qs.statement_end_offset END -qs.statement_start_offset)/2 + 1)
AS [使用CPU的语法], qt.text [完整语法],
dbname=db_name(qt.dbid),
object_name(qt.objectid,qt.dbid) ObjectName
FROM sys.dm_exec_query_stats qs WITH(nolock)
CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE execution_count>1
ORDER BY total_worker_time DESC
-
3
查询出结果后就可以根据结果对相应的SQL语句进行优化啦。
END
文章评论