共用方式為


大量匯入採用最低限度記錄的必要條件

如果是完整復原模式之下的資料庫,則大量匯入執行之所有資料列插入作業都會完整記錄在交易記錄中。 若使用完整復原模式,大型的資料匯入作業可能會使交易記錄檔很快就填滿。 相較之下,在簡單復原模式或大量記錄復原模式之下,大量匯入作業的最少記錄會減少大量匯入作業填滿記錄空間的機會。 最低限度記錄也比完整記錄更有效率。

[!附註]

大量記錄復原模式的設計目的是要暫時在大量匯入作業期間取代完整復原模式。

最低限度記錄大量匯入作業的資料表需求

使用最低限度記錄時,目標資料表必須符合下列條件:

  • 資料表未被複寫。

  • 已指定資料表鎖定 (使用 TABLOCK)。

    [!附註]

    雖然在最低限度記錄的大量匯入作業期間,交易記錄檔中不會記錄資料插入,但每當有新的範圍配置到資料表時,Database Engine 仍會記錄範圍配置。

資料表是否能產生最低限度記錄,還需視資料表是否已建立索引而定,若已建立索引,則需考量資料表是否為空白:

  • 若資料表沒有索引,則資料頁會使用最低限度記錄。

  • 若資料表沒有叢集索引,但有一或多個非叢集索引,則資料頁會一律使用最低限度記錄。 但索引頁的記錄方式,則取決於資料表是否空白:

    • 若資料表空白,則索引頁會使用最低限度記錄。

    • 若資料表不是空白,則索引頁會使用完整記錄。

      [!附註]

      若一開始您以空白資料表與多個批次來進行大量匯入資料,則在第一個批次中,索引頁與資料頁都會使用最低限度記錄,但從第二個批次開始,就只有資料頁會使用最低限度記錄。

  • 若資料表有叢集索引但為空白,則資料頁與索引頁都會使用最低限度記錄。 相對地,若資料表有叢集索引且並非空白,則不論復原模式為何,資料頁與索引頁都會使用完整記錄。

    [!附註]

    若一開始您以空白資料表與批次來進行大量匯入資料,則在第一個批次中,索引頁與資料頁都會使用最低限度記錄,但從第二個批次開始,只有資料頁會使用大量記錄。

[!附註]

啟用異動複寫時,即使在大量記錄復原模式下也會完整記錄 BULK INSERT 作業。

相關工作

搭配回到頁首連結使用的箭頭圖示[回到頁首]

請參閱

參考

bcp 公用程式

BULK INSERT (Transact-SQL)

OPENROWSET (Transact-SQL)

BACKUP (Transact-SQL)

ALTER DATABASE (Transact-SQL)

資料表提示 (Transact-SQL)

INSERT (Transact-SQL)

概念

復原模式 (SQL Server)