SQL Server 常用效能分析語句

來源:互聯網
上載者:User

--查看死結情況

SELECTDISTINCT
'進程ID'=STR(a.spid, 4)
, '進程ID狀態'=CONVERT(CHAR(10), a.status)
, '死結進程ID'=STR(a.blocked, 2)
, '工作站名稱'=CONVERT(CHAR(10), a.hostname)
, '執行命令的使用者'=CONVERT(CHAR(10), SUSER_NAME(a.uid))
, '資料庫名'=CONVERT(CHAR(10), DB_NAME(a.dbid))
, '應用程式名稱'=CONVERT(CHAR(10), a.program_name)
, '正在執行的命令'=CONVERT(CHAR(16), a.cmd)
, '登入名稱'= a.loginame
, '執行語句'= b.text
FROM master..sysprocesses a CROSS APPLY
sys.dm_exec_sql_text(a.sql_handle) b
WHERE a.blocked IN ( SELECT blocked
FROM master..sysprocesses )
-- and blocked <> 0
ORDERBYSTR(spid, 4)

--查串連住資訊(spid:57、58)
select connect_time,last_read,last_write,most_recent_sql_handle
from sys.dm_exec_connections where session_id in(57,58)
--查看會話資訊
select login_time,host_name,program_name,login_name,last_request_start_time,last_request_end_time
from sys.dm_exec_sessions where session_id in(57,58)
--查看阻塞正在執行的請求
select
session_id,blocking_session_id,wait_type,wait_time,wait_resource
from
sys.dm_exec_requests
where
blocking_session_id>0--正在阻塞請求的會話的 ID。如果此列是 NULL,則不會阻塞請求
/*
session_id,blocking_session_id,wait_type,wait_time,wait_resource
58 57 LCK_M_S 2116437 KEY: 6:72057594039435264 (020068e8b274)
*/
--查看正在執行的SQL語句
select
a.session_id,sql.text,a.most_recent_sql_handle
from
sys.dm_exec_connections a
cross apply
sys.dm_exec_sql_text(a.most_recent_sql_handle) as SQL --也可用函數fn_get_sql通過most_recent_sql_handle得到執行語句
where
a.Session_id in(57,58)
--查詢鎖類型

select 進程id=a.req_spid
  ,資料庫=db_name(rsc_dbid)
  ,類型=case rsc_type when1then'NULL 資源(未使用)'
  when2then'資料庫'
  when3then'檔案'
  when4then'索引'
  when5then'表'
  when6then'頁'
  when7then'鍵'
  when8then'擴充盤區'
  when9then'RID(行 ID)'
  when10then'應用程式'
  end
  ,對象id=rsc_objid
  ,對象名=b.obj_name
  ,rsc_indid
from master..syslockinfo a leftjoin #t b on a.req_spid=b.req_spid

 

----查看SA使用者執行的SQL
SELECT  '進程ID[SPID]'=STR(a.spid, 4)
  , '進程狀態'=CONVERT(CHAR(10), a.status)
  , '分塊進程ID'=STR(a.blocked, 2)
  , '伺服器名稱'=CONVERT(CHAR(10), a.hostname)
  , '執行使用者'=CONVERT(CHAR(10), SUSER_NAME(a.uid))
  , '資料庫名'=CONVERT(CHAR(10), DB_NAME(a.dbid))
  , '應用程式名稱'=CONVERT(CHAR(10), a.program_name)
  , '正在執行的命令'=CONVERT(CHAR(16), a.cmd)
  , '累計CPU時間'=STR(a.cpu, 7)
  , 'IO'=STR(a.physical_io, 7)
  , '登入名稱'= a.loginame
  , '執行sql'= b.text
FROM    master..sysprocesses a CROSS APPLY
    sys.dm_exec_sql_text(a.sql_handle) b
WHERE   blocked <>0OR a.loginame='sa'
ORDERBY spid

主要動態管理檢視:

sys.sysprocesses(相容sql2k)

sys.dm_exec_connections

sys.dm_exec_sessions

sys.dm_exec_requests

 

來源:http://www.cnblogs.com/ilovexiao/archive/2010/05/21/1740645.html

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.