我的存储过程中有一个选择返回 4000 + 行。我打算把它做成一个临时表,以便稍后在程序中处理数据。
我还有其他各种只返回 100-300 行的选择。我打算制作这些表变量,以便在稍后的过程中再次工作。
是否可以在同一过程中使用临时表和表变量,或者这会导致任何性能问题?
我的存储过程中有一个选择返回 4000 + 行。我打算把它做成一个临时表,以便稍后在程序中处理数据。
我还有其他各种只返回 100-300 行的选择。我打算制作这些表变量,以便在稍后的过程中再次工作。
是否可以在同一过程中使用临时表和表变量,或者这会导致任何性能问题?
是的,没关系。
至于编程实践,如果我正在阅读存储过程,我会更喜欢一种或另一种(并且倾向于表变量)。但是,您可能有充分的理由使用其中一个,例如需要临时表上的索引或将其用于 a select into
,然后继续。
这是您需要寻找全套选项的地方 sommarskog.se - share_data
能够向临时表添加各种索引是我有时会选择临时表的一个特别原因。
为了避免连续命中临时数据库,如果不需要索引,那么我将使用表变量。
现在我经常使用很多CTE
一起工作的 s 并且避免使用任何类型的物化表。
经典答案—— “视情况而定!”
我觉得这里有很多我们不知道的因素,比如你们公司的资源,你们的时间限制等等。
一般来说,为此目的使用临时表是可以的。和 100-300 行(在选择中提到) - 那是花生。不用担心。