sqlserver 死锁和阻塞解决 性能优化

2017-11-17 16:48:51
sp_who active  --看看哪个引起的阻塞,blk

sp_lock  --看看锁住了那个资源id,objid ,select object_name(objid) 得到

dbcc inputbuffer(74) -- 看看是那个语句

--结束指定session- spid从上边语句获得
kill 51

查询cpu 执行时间 等消耗大的sql语句

SELECT TOP 50 TEXT AS 'SQL Statement'
    ,last_execution_time AS 'Last Execution Time'
    ,(total_logical_reads + total_physical_reads + total_logical_writes) / execution_count AS [Average IO]
    ,(total_worker_time / execution_count) / 1000000.0 AS [Average CPU Time (sec)]
    ,(total_elapsed_time / execution_count) / 1000000.0 AS [Average Elapsed Time (sec)]
    ,execution_count AS "Execution Count",qs.total_physical_reads,qs.total_logical_writes
    ,qp.query_plan AS "Query Plan"
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.plan_handle) st
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
where last_execution_time>'2018-06-01 09:00:01.870'
ORDER BY total_elapsed_time / execution_count DESC