在大容量匯入中按最小方式記錄日誌的前提條件

iSQlServer發表於2008-11-26

對於完整恢復模式下的資料庫,大容量匯入執行的所有行插入操作都會完整地記錄在事務日誌中。如果使用完整恢復模式,大型資料匯入會導致填充事務日誌的速度很快。相反,對於簡單恢復模式或大容量日誌恢復模式,大容量匯入操作的按最小方式記錄日誌減少了大容量匯入操作填滿日誌空間的可能性。另外,按最小方式記錄日誌的效率也比按完整方式記錄日誌高。

注意:
大容量日誌恢復模式旨在於大容量操作期間臨時替換完整的恢復模式。有關在完整恢復模式和大容量日誌恢復模式之間切換的資訊,請參閱從完整恢復模式或大容量日誌恢復模式切換。
 


 在大容量匯入操作中按最小方式記錄日誌的表要求
按最小方式記錄日誌要求目標表滿足下列條件:

當前沒有複製表。

指定了表鎖定(使用 TABLOCK)。
有關詳細資訊,請參閱控制大容量匯入的鎖定行為。
注意:
儘管在按最小方式記錄日誌的大容量匯入操作過程中,資料插入操作沒有記錄在事務日誌中,但每當為表分配新區時,資料庫引擎仍會記錄區分配資訊。
 


對於某個表,是否按最小方式記錄日誌還取決於該表是否有索引,如果有,則還取決於該表是否為空:

如果表沒有索引,則按最小方式記錄資料頁。

如果表沒有聚集索引但是有一個或多個非聚集索引,則始終按最小方式記錄資料頁。但是,記錄索引頁的方式取決於該表是否為空:

如果該表為空,則按最小方式記錄索引頁。

如果該表不為空,則按完整方式記錄索引頁。
注意:
如果您以空表開始並分多批大容量匯入資料,則對於第一批,將按最小方式記錄索引頁和資料頁,但從第二批開始,將只按最小方式記錄資料頁。
 


如果表有聚集索引且為空,則按最小方式記錄資料頁和索引頁。相反,如果表有聚集索引且不為空,則無論採用何種恢復模式,均按完整方式記錄資料頁和索引頁。
注意:
如果您以空表開始並分批大容量匯入資料,對於第一批,將按最小方式記錄索引頁和資料頁,但從第二批開始,將只按大容量方式記錄資料頁。
 


有關詳細資訊(包括大容量匯入過程中的表鎖定和日誌記錄行為的摘要),請參閱優化大容量匯入效能。

最佳方法:當使用大容量日誌恢復匯入一組大型錶行時,請考慮將大容量匯入分成多批。每批相當於一個事務。這樣,完成一批後,就可以備份其日誌。下一次日誌備份將回收用於大容量匯入行批的日誌空間。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-503397/,如需轉載,請註明出處,否則將追究法律責任。

相關文章