0

我的存储过程中有一个选择返回 4000 + 行。我打算把它做成一个临时表,以便稍后在程序中处理数据。

我还有其他各种只返回 100-300 行的选择。我打算制作这些表变量,以便在稍后的过程中再次工作。

是否可以在同一过程中使用临时表和表变量,或者这会导致任何性能问题?

4

3 回答 3

5

是的,没关系。

至于编程实践,如果我正在阅读存储过程,我会更喜欢一种或另一种(并且倾向于表变量)。但是,您可能有充分的理由使用其中一个,例如需要临时表上的索引或将其用于 a select into,然后继续。

于 2013-01-15T22:56:39.963 回答
1

这是您需要寻找全套选项的地方 sommarskog.se - share_data

能够向临时表添加各种索引是我有时会选择临时表的一个特别原因。

为了避免连续命中临时数据库,如果不需要索引,那么我将使用表变量。

现在我经常使用很多CTE一起工作的 s 并且避免使用任何类型的物化表。

经典答案—— “视情况而定!”

于 2013-01-16T08:43:34.713 回答
0

我觉得这里有很多我们不知道的因素,比如你们公司的资源,你们的时间限制等等。

一般来说,为此目的使用临时表是可以的。和 100-300 行(在选择中提到) - 那是花生。不用担心。

于 2013-01-15T22:56:22.490 回答