SQL Server临时表与游标

时间:2010-12-31 06:11:09

标签: sql stored-procedures temp-tables

在SQL Server存储过程中何时使用临时表以及何时使用游标。这是明智的选择吗?

2 个答案:

答案 0 :(得分:20)

如果有可能避免游戏就像瘟疫一样。 SQL Server是基于集合的 - 在RBAR(逐行排列)方式中你需要做的任何事情都会变得缓慢,迟缓,并且违背SQL工作原理的基本原则。 p>

你的问题很模糊 - 根据这些信息,我们无法真正说出你想要做什么。但主要建议仍然是:尽可能(并且在绝大多数情况下都可能),使用基于集合的操作- SELECT, UPDATE, INSERT并加入 - 不要强迫您对SQL Server进行程序性思考 - 这不是最好的方法去。

因此,如果您可以使用基于集合的操作来填充和使用临时表,我希望每次都使用该方法而不是游标。

答案 1 :(得分:7)

游标逐行工作,表现极差。几乎在所有情况下,它们都可以被更好的基于集合的代码替换(通常不是临时表)

临时表可以是好的还是坏的,具体取决于数据量以及您使用它们的方式。它们通常不是光标的替代品。

建议你读这个: http://wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them