use*_*683 6 locked-objects excel wait-types sql-server-2014
我最近继承了一个 MSSQL 数据库,因为我们的 DBA 已经转向更美好的领域。我不是 DBA,只有中等的 SQL 知识,但不得不承担他的一些职责,并且遇到了一个问题,我在导航时遇到了一些麻烦。
我们遇到了一个问题,即通过 Excel 访问数据库的用户往往会导致数据库操作停止,这会影响我们的 ERP 软件。我们当前的解决方法是查看 SSMS 中的活动监视器并终止有问题的 Microsoft Office 应用程序。
我希望有一个每隔几分钟运行一次的脚本化任务,以保持事情顺利进行,并且当系统出现故障时,用户不会涌向 IT。
我发现以下查询将允许我提取锁定类型和其他有用的数据(例如等待时间),但不能提取活动监视器中找到的特定应用程序。
select * from sys.dm_exec_requests where wait_type = 'LCK_M_S'
理想情况下,此代码将找到 wait_type 为 LCK_M_S 的应用程序 Microsoft Office,并终止等待时间最长的任务,并在一天中根据需要重复。
预先感谢您的回复。
你可以看看
select session_id, program_name, host_name
from sys.dm_exec_sessions
Run Code Online (Sandbox Code Playgroud)
但这些程序名称可以由客户端选择,因此不能保证您可以识别 Excel 会话。
更好的解决方案是查看您的 ERP 软件是否支持 READ COMMITTED SNAPSHOT 隔离,并设置数据库选项以防止您的 Excel 用户需要共享锁来运行查询。
归档时间: |
|
查看次数: |
639 次 |
最近记录: |