Applies ToSQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

症状

请考虑以下情况:

  • 您有一个非常大的 Filestream 表。

  • 对 Filestream 表中的行执行删除查询,该查询将创建一个昂贵的查询计划,例如由内部联接筛选到系统中的另一个大型表。

  • 查询优化器将选择并行执行计划。

在这种情况下,将出现一个 ssertion,你可能会在 SQL Server 错误日志中收到类似于以下内容的错误消息:

DateTime spid SpidNumber 错误:5553,严重性:20,状态:6。

DateTime spid SpidNumber SQL Server 内部错误。 FILESTREAM 管理器无法继续执行当前命令。

状态

Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。

解决方案

在 SQL Server 的以下累积更新中修复了此问题:

关于 SQL Server 的累积更新:

SQL Server 的每个新累积更新都包含 修补程序和上一版本附带的所有安全修补程序 累积更新。 查看 SQL Server 的最新累积更新:

解决方法

To 此问题的解决方法是,y ou 可以使用以下方法:

将内部联接查询移动到单独的语句并将结果保存到临时表中。 然后运行按临时表中的条目筛选的删除查询。 此外,你可以增加并行度的成本阈值,以强制优化程序序列化查询计划。

例如:

选择 "#T RefTable",从 OuterTable 内部联接数据库. dbo. RefTable ON RefTable = OuterTable。 alias =。

             其中 OuterTable > 30006 和 OuterTable < 30010 

从数据库 dbo 中删除。表"位置" 中的别名(从 #T 中选择 "*")

参考

了解有关术语 Microsoft 用于描述软件更新。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。