【发布时间】:2018-02-24 12:43:49
【问题描述】:
我有一个 while 循环,它将运行 300M 次。
每次该循环运行时,它创建一个包含两列的 1 行表,在循环结束时该表被 删除,一旦循环重新开始时,再次重建此表,其中 1 行有两列,但数据不同。
目前我正在使用一个表格变量,但考虑到所有这些创建和擦除,我想知道您对我应该使用哪种表格来提高性能的看法。
【问题讨论】:
-
为什么不只使用两个简单的变量?
-
虽然 sql server 中的循环执行了 3 亿次,hmmmmm,你担心它的性能 hmmmmm,真的 :)
-
@M.Ali 在我的情况下,我仅限于几种方法,这是其中之一。从我所有更糟糕的情况中,我必须找到更糟糕的情况:x
-
您可能会错过更好的选择。为什么不问一个关于如何实现最终目标的问题,并包括任何限制背后的原因。
-
@MartinSmith 是的,也许你是对的。无论如何,我有 4 列,id| idguid |家长指导 |文件路径我需要一个包含 4 列和 27 个其他列的最终表,这些列表示给定 400 万行的最大深度级别。第一种方法 - CTE 第二种方法 - 逐行拆分路径到其他列 第 3 种 - 使用 while 逻辑执行与之前相同的逻辑 第 4 种 - 27 自联接无论如何,自联接可能会获胜,但我想涵盖可能性
标签: sql-server performance ssms temp-tables table-variable