AMt*_*two 6 sql-server sql-server-2008-r2 database-mail
昨天我们在生产 (2008R2 SP3) 中遇到了一个问题,开发人员在 SSMS 中运行一段代码,该代码在sp_send_dbmail
事务内执行,并包含来自另一台服务器上的网络共享的附件。
开发人员报告代码“似乎比预期花费的时间更长”并试图停止查询。当查询未能停止时,他让我终止他的查询。
使用sp_WhoIsActive
,我收集了有关会话的以下信息:
xp_sysmail_attachment_load
sp_send_dbmail
--> sp_GetAttachmentData
-->xp_sysmail_attachment_load
由于 PREEMPTIVE_OS 等待,在操作系统产生/返回之前,无法从 SQL Server 终止会话。使用 TCPView,我确认没有从 SQL Server 到带有附件的文件服务器的活动网络连接。我不知道是否有一个连接已经断开连接,或者它是否从未建立连接。
根据数据,我的假设是访问附件时存在一些问题,导致会话挂起,并且操作系统进程永远不会产生/返回。
由于这会导致阻塞而影响生产,因此我们最终将 FCI 故障转移到另一个节点,因此实例重启将迫使会话终止。
我的问题是:
xp_sysmail_attachment_load
更有可能挂起?(我正在处理一个重现案例,但还不能可靠地重现这个。) 归档时间: |
|
查看次数: |
1030 次 |
最近记录: |