2012-12-02 21 views
0

我正在使用公用表表達式在批處理語句中執行一些更新。公用表表達式和內存使用情況

建議在完成循環後刪除表並在下一遍重新聲明它?我正在將這個腳本部署到一個相當未知的環境中,擔心資源利用率並希望將內存使用量降到最低。

編輯,包括源(這是一個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 
+0

你不能刪除派生表,它只是一個子查詢。你在說「#臨時」表還是「@ table_variables」?請顯示一些代碼。 –

+0

@MartinSmith對不起。當然你是對的。我錯過了「sql-server」標籤。 – Lee

+0

我已經更新了這個問題以反映我正在做什麼 - 對不起,如果我錯誤地命名它。 –

回答

1

這個問題是關於該問題的評論回答@MartinSmith:

下面是常見的表編輯表達。它基本上就像一個派生表,但不能放棄它,因爲它本身不是以表的形式存在的。它沒有被物化成一個臨時表,它只是被內聯到查詢中,它引用它