共用方式為


管理交易記錄檔的大小

在某些情況下,變更實體記錄檔的大小可能會很有用。

監視記錄空間的使用

您可以使用 DBCC SQLPERF (LOGSPACE) 來監視記錄空間的使用。這個命令會傳回目前使用之記錄空間量的相關資訊,並指出交易記錄需要截斷的時機。如需詳細資訊,請參閱<DBCC SQLPERF (Transact-SQL)>。如需記錄檔的目前大小、大小上限及檔案的自動成長選項等相關資訊,您也可以在 sys.database_files 中使用該記錄檔的 sizemax_sizegrowth 資料行。如需詳細資訊,請參閱<sys.database_files (Transact-SQL)>。

重要注意事項重要事項

我們建議您應避免讓記錄磁碟超過負載。

壓縮記錄檔的大小

記錄截斷是不可或缺的動作,因為它會釋出磁碟空間以便重複使用,不過卻不會縮減實體記錄檔的大小。若要縮減實體大小,記錄檔必須進行壓縮,以便移除一或多個未保存任何邏輯記錄部分的虛擬記錄檔 (亦即,「非使用中虛擬記錄檔」)。當交易記錄檔壓縮之後,就會從記錄檔的結尾移除將記錄縮減至大約目標大小所需的非使用中虛擬記錄檔。如需詳細資訊,請參閱<壓縮交易記錄檔>。

[!附註]

像長時間執行的交易之類的因素,使虛擬記錄檔保持作用中一段很長的時間,可能限制記錄檔壓縮,甚至完全阻止記錄檔壓縮。如需詳細資訊,請參閱<可能會延遲記錄截斷的因素>。

如需詳細資訊,請參閱<壓縮交易記錄檔>。

新增或加大記錄檔

或者,您可以加大現有的記錄檔 (如果磁碟空間允許的話),或是資料庫新增記錄檔 (通常是在不同的磁碟上),來取得空間。

  • 若要對資料庫新增一個記錄檔,請使用 ALTER DATABASE 陳述式的 ADD LOG FILE 子句。新增記錄檔可讓記錄檔增大。如需新增檔案的詳細資訊,請參閱<加入和刪除資料與交易記錄檔>。

  • 若要加大記錄檔,可以使用 ALTER DATABASE 陳述式的 MODIFY FILE 子句,並指定 SIZE 與 MAXSIZE 語法。如需詳細資訊,請參閱<ALTER DATABASE (Transact-SQL)>。

最佳化 tempdb 交易記錄的大小

重新啟動伺服器執行個體時,就會將 tempdb 資料庫的交易記錄大小重新調整為自動成長之前的原始大小。這樣會降低 tempdb 交易記錄的效能。您可以在啟動或重新啟動伺服器執行個體後,增加 tempdb 交易記錄的大小,藉以避免這項負擔。如需詳細資訊,請參閱<tempdb 資料庫>和<最佳化 tempdb 效能>。

控制交易記錄檔的大小

您可以使用 ALTER DATABASE (Transact-SQL) 陳述式來管理交易記錄檔的成長。請注意下列事項:

  • 若要變更目前的檔案大小 (單位為 KB、MB、GB 和 TB),請使用 SIZE 選項。

  • 若要變更成長的增量,請使用 FILEGROWTH 選項。0 的值表示將自動成長設為關閉,而且不允許任何其他空間。

  • 若要控制記錄檔大小的最大值 (單位為 KB、MB、GB 和 TB) 或是將成長設定為 UNLIMITED,請使用 MAXSIZE 選項。