我的存储过程中有一个选择返回4000 +行。我打算将它作为临时表来处理程序中的数据。
我还有其他各种选择只返回100-300行。我打算制作这些表变量,再次在后面的程序中解决。
在同一程序中使用临时表和表变量是否可以,否则会导致任何性能问题?
答案 0 :(得分:5)
是的,没关系。
至于编程实践,如果我正在读取存储过程,我更喜欢一种类型或另一种类型(并倾向于表变量)。但是,您可能有充分的理由使用其中一个,例如需要临时表上的索引或将其用于select into
,然后继续。
答案 1 :(得分:1)
您需要在此处查找完整的选项sommarskog.se - share_data
能够向临时表添加各种索引是我有时会选择临时表的一个特别原因。
为了避免连续命中temp db,如果不需要索引,那么我将使用表变量。
现在我经常使用许多CTE
一起工作,避免使用任何类型的物化表。
经典答案 - “取决于它!”
答案 2 :(得分:0)
我认为这里有许多我们不知道的因素,例如贵公司的资源,时间限制等。
一般来说,为此目的使用临时表是很好的。和100-300行(在选择中提到) - 那是花生。不用担心。