SQL Server 系统表介绍:dm_exec_connections

 

sys.dm_exec_connectionssys.dm_exec_sessions 和 sys.dm_exec_requests 动态管理视图映射到sys.sysprocesses 系统表。

列名 数据类型 说明

session_id

int

标识与此连接关联的会话。可为空值。

most_recent_session_id

int

显示与此连接关联的最近请求的会话 ID。(另一个会话可以重用 SOAP 连接。)可为空值。

connect_time

datetime

连接建立时的时间戳。不可为空值。

net_transport

nvarchar(40)

说明该连接使用的物理传输协议。不可为空值。

如果连接启用了多个活动结果集 (MARS),则始终返回会话
ms181509.note(zh-cn,SQL.90).gif注意:

protocol_type

nvarchar(40)

指定负载的协议类型。此参数当前可区分 TDS (TSQL) 和 SOAP。可为空值。

protocol_version

int

与此连接关联的数据访问协议的版本。可为空值。

endpoint_id

int

说明其连接类型的标识符。此 endpoint_id 可用于查询sys.endpoints 视图。可为空值。

encrypt_option

nvarchar(40)

说明是否为此连接启用了加密的布尔值。不可为空值。

auth_scheme

nvarchar(40)

用于连接的 SQL Server 身份验证方案。Windows 身份验证机制(NTLM、KERBEROS、DIGEST、BASIC、NEGOTIATE)或用于的 SQL Server 身份验证的 SQL。不可为空值。

node_affinity

smallint

标识与此连接关联的内存节点。不可为空值。

num_reads

int

此连接中已发生的读包次数。可为空值。

num_writes

int

此连接中已发生的写数据包次数。可为空值。

last_read

datetime

此连接中上一次发生读操作的时间戳。可为空值。

last_write

datetime

此连接中上一次发生写操作的时间戳。不可为空值。

net_packet_size

int

用于信息和数据的网络包的大小。可为空值。

client_net_address

varchar(40)(SQL Server 2005)

varchar(48)(SQL Server 2005 Service Pack 1)

与此服务器连接的客户端的主机地址。可为空值。

client_tcp_port

int

与该连接关联的客户机上的端口号。可为空值。

local_net_address

varchar(40)(SQL Server 2005)

varchar(48)(SQL Server 2005 Service Pack 1)

显示此连接的目标服务器的 IP 地址。只对使用 TCP 传输提供程序的连接可用。可为空值。

local_tcp_port

int

如果此连接使用 TCP 传输,则显示该连接的目标服务器的 TCP 端口。可为空值。

connection_id

uniqueidentifier

对每个连接进行唯一标识。不可为空值。

parent_connection_id

uniqueidentifier

标识 MARS 会话正在使用的主要连接。可为空值。

most_recent_sql_handle

varbinary(64)

此连接上执行的上一个请求的 SQL 句柄。most_recent_sql_handle 列始终与most_recent_session_id 列同步。可为空值。

需要对服务器具有 VIEW SERVER STATE 权限。

对于 关系

sys.dm_exec_connections

sys.dm_exec_connections

parent_connection_id = connection_id

一对零或一对多

sys.dm_exec_sessions

sys.dm_exec_connections

session_id

一对零或一对多

sys.dm_exec_connections

sys.dm_exec_requests

connection_id

一对零或一对一

sys.dm_exec_connections

sys.dm_broker_connections

connection_id

一对零或一对一

A. 返回关于当前连接的信息

以下示例返回关于当前连接的基本信息:网络传输协议、身份验证机制和加密设置。

SELECT net_transport, auth_scheme, encrypt_option
FROM sys.dm_exec_connections
WHERE session_id=@@SPID;
GO

B. 识别连接到服务器的客户端

以下示例返回连接到服务器的连接数,并显示起始 IP 地址和各连接的端口。

SELECT session_id, client_net_address, client_tcp_port
FROM sys.dm_exec_connections;
GO
当在SQL Server中执行任务时遇到阻塞,可以通过以下步骤解决: 1. 查找阻塞进程:使用以下命令查找正在运行的进程和被阻塞的进程: ``` SELECT L.request_session_id AS SPID, DB_NAME(L.resource_database_id) AS DatabaseName, O.Name AS LockedObjectName, P.object_id AS LockedObjectId, L.resource_type AS LockedResource, L.request_mode AS LockType, ST.text AS SqlStatementText, ES.login_name AS LoginName, ES.host_name AS HostName, TST.is_user_transaction as IsUserTransaction, AT.name as TransactionName, CN.auth_scheme as AuthenticationMethod FROM sys.dm_tran_locks L JOIN sys.partitions P ON P.hobt_id = L.resource_associated_entity_id JOIN sys.objects O ON O.object_id = P.object_id JOIN sys.dm_exec_sessions ES ON ES.session_id = L.request_session_id JOIN sys.dm_exec_connections CN ON CN.session_id = ES.session_id JOIN sys.dm_tran_session_transactions TST ON ES.session_id = TST.session_id JOIN sys.dm_tran_active_transactions AT ON TST.transaction_id = AT.transaction_id CROSS APPLY sys.dm_exec_sql_text(CN.most_recent_sql_handle) AS ST WHERE resource_database_id = DB_ID() ``` 2. 结束阻塞进程:根据查询结果中的SPID,使用以下命令结束阻塞进程: ``` KILL <SPID> ``` 3. 优化查询语句:如果阻塞问题由查询语句引起,则需要分析查询语句并进行优化,以减少阻塞的可能性。可以使用SQL Server Profiler或Extended Events等工具来分析查询语句并查找潜在的性能问题。 4. 调整事务隔离级别:如果阻塞问题由并发事务引起,则可以考虑调整事务隔离级别,例如将隔离级别降低为READ COMMITTED。 5. 增加硬件资源:如果阻塞问题由资源瓶颈引起,则可以考虑增加硬件资源,例如增加CPU、内存或磁盘容量等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值