我们从客户端获得票证,而客户端的报告有时会从查询中获得部分数据。在简单的word查询中,是对视图的查询:
SELECT column1, column2, column3, column4, column5, column6 ... column50
from [dbo].[view]查看返回约300万条记录。在服务器上,我们有一些规则可以在运行30分钟后终止查询。在正常情况下,此查询运行约5分钟,但在工作量较大的情况下,此查询运行时间超过30分钟。在这种情况下,客户端可能会得到两种错误:
·返回的已删除的查询
“Msg 596,21级无法继续执行,因为会话处于死状态”
这导致应用程序导入节点失败,这是“理想的”情况,因为它们不依赖具有部分输入数据集的工作流。
*一种与杀人过程有关的情况
“Msg 0,级别20当前命令发生严重错误”
从ODBC的角度看,这与成功运行相同,因此我们以部分数据集结束--这是最危险的情况。
你知道如何避免这种问题吗?
发布于 2022-06-10 17:45:59
我们也遇到了类似的问题,除了我们最初的查询被网络中断所扼杀。这反过来又破坏了我们忙于重建的索引之一。结果是什么呢?最后,我们发现,如果您查询某个表,SQL就会进入杀死状态。我手动重建每个索引,然后在每次重建后测试表。最后,我发现索引出现了问题,我删除了它,重新创建了它,然后一切都顺利进行了。
SQL日志、事件查看器条目、SSRS日志在这一次几乎毫无用处.
https://dba.stackexchange.com/questions/307155
复制相似问题