公用表表达式和内存使用情况

时间:2012-12-02 18:34:53

标签: sql sql-server tsql common-table-expression

我正在使用公用表表达式在批处理语句中执行某些更新。

是否建议在循环中完成后对DROP表进行DROP,并在下一次传递时重新声明它?我正在将此脚本部署到一个相当未知的环境中,我担心资源利用率,并希望将内存使用量降至最低。

编辑为包含源(这是在while循环中):

WITH UpdatedRecords AS (
    SELECT TOP 50000
           unique_id,
           is_processed
    FROM
          _TempSnapshots
    WHERE
          is_processed = 0
    ORDER BY
          unique_id DESC
)
UPDATE UpdatedRecords 
   SET is_processed = 1

1 个答案:

答案 0 :(得分:1)

@MartinSmith在对该问题的评论中回答了这个问题:

编辑后是一个常见的表格表达式。它基本上就像一个派生表,你不能放弃它,因为它本身并不作为一个表存在。它没有被预先实现到临时表中,只是内联到引用它的查询中