sql-server - 没有任务状态的 SQL 进程阻塞其他进程
问题描述
我遇到了锁定我的 SQL Server 的进程的问题,即使它们似乎已完成。
阻塞进程是 4 个简单的SELECT GETDATE()
命令,由于某种我不知道的原因而无法完成。SELECT GETDATE()
除了每四分钟重复一次之外,SQL Server Profiler 并没有真正显示任何活动。- 可能在此之前同一连接发送了一个 UPDLOCK 请求。
我主要想为这种行为找到解释。我无法真正影响那些阻塞请求。- 如您所见,它们是由外部公司发送的。
暂停的进程也从 Business Central Server 中调用,但绕过标准解释层以优化性能。- 为此,它调用 SQL .Net 类直接执行 SQL 查询。
如果我终止进程,服务器会抛出一个错误,整个执行过程就会失败。
ps 在这里与 BC 一起工作的 PPL 并认为这不是一个好主意:此代码不会在日常业务中运行。我只是在从 NAV 升级到 BC 期间迁移数据。我们构建了一个工具,允许我们在 C/AL 和 AL 解决方案之间映射字段,并基于这些映射生成 AL-Extension。这些扩展从原始数据库的副本中获取数据,并将它们直接写入目标文件。我们需要 SQL 命令,因为我们的一些客户多年来积累了大量数据,如果在 AL 中处理数据,升级将需要一周以上的时间
解决方案
推荐阅读
- c - 递归函数如何迭代?
- android - 为 Android 修改签名的 .apk 文件
- reactjs - 为什么 React Component 在同一个页面而不是另一个页面上呈现?
- html - CSS:相对于父元素的当前高度设置高度
- sql - 跨不同相似模式的联合查询,但列排序不同
- sql - .NET Serilog 有时会在同一秒内将两次记录到 SQL,并带有附加列
- python - 从 python2.7 到 3.8 的运行时迁移
- python - tf.keras.models:load_model() ValueError:未知层:OpenCV/DNN 模块中的功能。如何在旧版本的 tf/keras 中使用预训练模型?
- python-3.x - 自定义迁移后如何在模型中添加新字段,在新字段之前访问模型?
- c# - 为什么代码不会在 Unitys 控制台中打印?