内存优化表事务提交依赖性问题
Issue with memory optimized tables transaction commit dependencies
我正在使用 SQL Server 2016,并处理一大组全部由一个父存储过程调用的存储过程。所有存储过程除了读取 return 一个结果集外什么都不做。我已经确认所有必要的对象都在缓存中,并且没有发生物理读取。所有读取都是在没有 table 扫描的索引上完成的。这个过程过去到处都有临时 table。为了帮助加快此过程,我将所有临时 table 替换为仅具有架构持久性的内存优化 table。这样做之后,在负载下,我看到这被网络 api 记录了很多。
Transaction exceeded the maximum number of commit dependencies and the last statement was aborted. Retry the statement. The statement has been terminated.
None 个存储过程使用事务。我已经对它进行了一些谷歌搜索,但我仍在为这条消息而苦苦挣扎。
正如 Microsoft 文档中提到的那样,您需要将 delete from MemOptimizedTable
放在您的 sproc 应该具有 create #TempTable
的位置。我以为我做到了,但我最终错过了一个导致碰撞的地方。在删除了一个额外的删除之后,现在一切都很好。
我正在使用 SQL Server 2016,并处理一大组全部由一个父存储过程调用的存储过程。所有存储过程除了读取 return 一个结果集外什么都不做。我已经确认所有必要的对象都在缓存中,并且没有发生物理读取。所有读取都是在没有 table 扫描的索引上完成的。这个过程过去到处都有临时 table。为了帮助加快此过程,我将所有临时 table 替换为仅具有架构持久性的内存优化 table。这样做之后,在负载下,我看到这被网络 api 记录了很多。
Transaction exceeded the maximum number of commit dependencies and the last statement was aborted. Retry the statement. The statement has been terminated.
None 个存储过程使用事务。我已经对它进行了一些谷歌搜索,但我仍在为这条消息而苦苦挣扎。
正如 Microsoft 文档中提到的那样,您需要将 delete from MemOptimizedTable
放在您的 sproc 应该具有 create #TempTable
的位置。我以为我做到了,但我最终错过了一个导致碰撞的地方。在删除了一个额外的删除之后,现在一切都很好。