数据库连接情况

 
--所有请求情况:

 
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_id
        RIGHT OUTER JOIN Sys.dm_exec_connections c WITH ( NOLOCK ) ON s.session_id = c.session_id
WHERE   1 = 1
        AND s.session_id > 50
ORDER BY s.session_id

-- 哪个用户连接数最多:

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_id
        RIGHT 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 DESC

 
--哪台机器发起到数据库的连接数最多:

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_id
        RIGHT 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
ORDER BY 3 DESC

 

 

-- 进程状态:

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_id
        RIGHT 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 DESC

--结果(running数比较多,表面数据库压力比较大):

 
 

posted @   qanholas  阅读(210)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示