Sql-Server
SQL Server 可以在單個 INSERT 語句中將多少行處理到一個表中?
為了說明我的問題,以下是一個查詢,檢測尚未插入數據倉庫的訂單 ID 並插入它們:
With NewOrders As ( Select OrderID From Orders Except Select OrderID From FactOrders ) Insert Into FactOrders(OrderID, OrderDate, CustomerId) Select OrderID, OrderDate, CustomerId From Orders Where OrderID in (Select OrderID from NewOrders);
假設第一次執行查詢並
Orders
包含 4 億行或更多行:SQL Server 可以在一條
INSERT
語句中處理這麼多行嗎?如果沒有,我應該如何進行?
INSERT
我應該限制語句中提取的行數嗎?INSERT
引擎在一條語句中可以處理多少行?
根據文件,每個表儲存的行數的唯一限制如下
僅受可用資源限制
這可能包括哪些本地資源?
- 記憶
- 數據庫數據文件中用於將插入的數據物理寫入的空間
- 數據庫日誌文件中的空間
- TempDB 中的空間(數據和日誌)
至於單個 SELECT 語句可以提取多少,我找不到與此直接相關的任何文件,但我認為將其與上述完全相同是安全的。