日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库连接情况查询

發布時間:2023/12/13 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库连接情况查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
--sp_who 可以指定數據庫名,查詢指定數據庫的連接情況 sp_who go select DB_NAME(database_id) dbname, login_name, t1.session_id, t1.request_id, t2.status, t1.start_time, host_name from sys.dm_exec_requests t1inner join sys.dm_exec_sessions t2 on t1.session_id = t2.session_id go --包含正在 Microsoft SQL Server 實例上運行的進程的相關信息。這些進程可以是客戶端進程或系統進程。若要訪問 sysprocesses,您必須位于 master 數據庫上下文中,或者必須使用由三部分構成的名稱 master.dbo.sysprocesses。 select * from sys.sysprocesses--查詢指定數據庫的連接情況 select * from [Master].[dbo].[SYSPROCESSES] where [DBID] in ( select [DBID]from [Master].[dbo].[SYSDATABASES]where name='bpm') go---數據庫系統所有請求情況 select s.session_id, s.status, db_name(r.database_id) as database_name, s.login_name, s.login_time, s.host_name,c.client_net_address, c.client_tcp_port, s.program_name, r.cpu_time, r.reads, r.writes, c.num_reads,c.num_writes, s.client_interface_name, s.last_request_start_time, s.last_request_end_time, c.connect_time,c.net_transport, c.net_packet_size, r.start_time, r.status, r.command, r.blocking_session_id, r.wait_type,r.wait_time, r.last_wait_type, r.wait_resource, r.open_transaction_count, r.percent_complete,r.granted_query_memory from Sys.dm_exec_requests r with ( nolock )right outer join Sys.dm_exec_sessions s with ( nolock ) on r.session_id = s.session_idright outer join Sys.dm_exec_connections c with ( nolock ) on s.session_id = c.session_id --where s.session_id > 50 order by s.login_timego---哪個用戶連接數最多: select login_name, COUNT(0) user_count from Sys.dm_exec_requests r with ( nolock )right outer join Sys.dm_exec_sessions s with ( nolock ) on r.session_id = s.session_idright outer join Sys.dm_exec_connections c with ( nolock ) on s.session_id = c.session_id where s.session_id > 50 group by login_name order by 2 descgo ---哪臺機器發起到數據庫的連接數最多: select s.host_name, c.client_net_address, COUNT(0) host_count from Sys.dm_exec_requests r with ( nolock )right outer join Sys.dm_exec_sessions s with ( nolock ) on r.session_id = s.session_idright outer join Sys.dm_exec_connections c with ( nolock ) on s.session_id = c.session_id where s.session_id > 50 group by host_name, client_net_address go--進程狀態 select s.status, COUNT(0) host_count from Sys.dm_exec_requests r with ( nolock )right outer join Sys.dm_exec_sessions s with ( nolock ) on r.session_id = s.session_idright outer join Sys.dm_exec_connections c with ( nolock ) on s.session_id = c.session_id where s.session_id > 50 group by s.status order by 2 descgo--查看數據庫阻塞情況 select t1.resource_type as [lock type], db_name(resource_database_id) as [database],t1.resource_associated_entity_id as [blk object], t1.request_mode as [lock req] -- lock requested , t1.request_session_id as [waiter sid] -- spid of waiter , t2.wait_duration_ms as [wait time],( select textfrom sys.dm_exec_requests as r with ( nolock ) --- get sql for waiter cross apply sys.dm_exec_sql_text(r.sql_handle)where r.session_id = t1.request_session_id) as waiter_batch,( select substring(qt.text, r.statement_start_offset / 2,( case when r.statement_end_offset = -1 then len(convert(nvarchar(max), qt.text)) * 2else r.statement_end_offsetend - r.statement_start_offset ) / 2 + 1)from sys.dm_exec_requests as r with ( nolock )cross apply sys.dm_exec_sql_text(r.sql_handle) as qtwhere r.session_id = t1.request_session_id) as waiter_stmt --- statement executing now , t2.blocking_session_id as [blocker sid] --- spid of blocker , ( select textfrom sys.sysprocesses as p with ( nolock ) --- get sql for blocker cross apply sys.dm_exec_sql_text(p.sql_handle)where p.spid = t2.blocking_session_id) as blocker_stmt, getdate() time from sys.dm_tran_locks as t1 with ( nolock ) ,sys.dm_os_waiting_tasks as t2 with ( nolock ) where t1.lock_owner_address = t2.resource_addressgoselect db_name(r.database_id) as database_name, COUNT(0) host_count from Sys.dm_exec_requests r with ( nolock )right outer join Sys.dm_exec_sessions s with ( nolock ) on r.session_id = s.session_idright outer join Sys.dm_exec_connections c with ( nolock ) on s.session_id = c.session_id where s.session_id > 50 group by r.database_id order by 2 descgo--查看阻塞其他進程的進程(阻塞源頭) select t2.blocking_session_id,COUNT(0) counts from sys.dm_tran_locks as t1 with(nolock) , sys.dm_os_waiting_tasks as t2 with(nolock) where t1.lock_owner_address = t2.resource_address group by blocking_session_id order by 2go --被阻塞時間最長的進程 select top 10t1.resource_type as [lock type], db_name(resource_database_id) as [database],t1.resource_associated_entity_id as [blk object], t1.request_mode as [lock req] -- lock requested , t1.request_session_id as [waiter sid] -- spid of waiter , t2.wait_duration_ms as [wait time],( select textfrom sys.dm_exec_requests as r with ( nolock ) --- get sql for waiter cross apply sys.dm_exec_sql_text(r.sql_handle)where r.session_id = t1.request_session_id) as waiter_batch,( select substring(qt.text, r.statement_start_offset / 2,( case when r.statement_end_offset = -1 then len(convert(nvarchar(max), qt.text)) * 2else r.statement_end_offsetend - r.statement_start_offset ) / 2 + 1)from sys.dm_exec_requests as r with ( nolock )cross apply sys.dm_exec_sql_text(r.sql_handle) as qtwhere r.session_id = t1.request_session_id) as waiter_stmt --- statement executing now , t2.blocking_session_id as [blocker sid] --- spid of blocker , ( select textfrom sys.sysprocesses as p with ( nolock ) --- get sql for blocker cross apply sys.dm_exec_sql_text(p.sql_handle)where p.spid = t2.blocking_session_id) as blocker_stmt, getdate() time from sys.dm_tran_locks as t1 with ( nolock ) ,sys.dm_os_waiting_tasks as t2 with ( nolock ) where t1.lock_owner_address = t2.resource_address order by t2.wait_duration_ms desc

  

轉載于:https://www.cnblogs.com/wolfocme110/p/7728814.html

總結

以上是生活随笔為你收集整理的数据库连接情况查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。