0

如果 RECEIVE 端点在收到 END DIALOG 消息时没有结束对话会发生什么?

它最终会减慢 SqlServer 的速度,因为它必须跟踪很多对话吗?

4

1 回答 1

1

每个对话都有一个终生计时器。如果您当时没有指定生命周期,BEGIN DIALOG那么它们的默认生命周期约为 68 年(2147483647 秒)。未完成的端点必须在整个生命周期中保留。这会消耗行,sys.conversation_endpoints因此最终您的磁盘将填满。不仅如此,每个活动的对话端点也需要内存(可能由 tempdb 备份),并且在数据库启动时,必须扫描所有对话以确定任何待处理的操作(计时器、生命周期)。

总而言之,根本没有理由不发出你的一面END DIALOG

于 2013-10-07T07:01:59.993 回答