在表变量中选择行是否会阻止源表上的光标锁定



我发现有几个报告需要通过游标逐行组装。

我知道游标在针对表运行时通常不是一件好事,但如果我为表变量创建游标,这会防止可能发生的行锁定吗?我已经找到了在大多数情况下完全避免光标的方法,但在一些报告中还没有找到解决方法。

游标之所以不好,是因为它们糟糕的性能,而通常不是因为它们会导致锁定(尽管这肯定是一个问题)。如果在表变量上使用光标,性能问题不会消失,锁定仍然会发生,但会发生在表变量表上。唯一的区别是表变量不能被其他会话访问,所以他们保证不会阻塞它,这是有意义的。总体性能可能仍然会下降,因为您需要首先将数据复制到表变量中,但如果您主要关心的是锁,这肯定会有所帮助。

最新更新