Index-Tuning
在 IndexOptimize.sql 中添加參數以在處理每個索引後執行自定義命令
IndexOptimize.sql
我需要一些方法來檢查空間使用情況並在我們執行腳本時備份數據庫的事務日誌之前它已滿。我們的數據庫是鏡像的,所以我無法更改它們的恢復模式。順便說一句,我們的日誌文件增長了數百 GB。一種可能性是在處理每個索引後執行自定義命令。此自定義命令將由系統管理員設計用於執行任何自定義操作,在這種情況下,檢查事務日誌文件使用的邏輯空間,如果大於百分比,則執行備份日誌。
您可以在腳本中添加一個參數來執行此操作嗎?
有沒有其他方法可以避免這個問題?
如果您使用的是 SQL Server 2016 SP2 或更高版本,則可以使用新的智能事務日誌功能。當生成大量事務日誌時(例如在索引維護期間),這可能會觸發頻繁的日誌備份。
EXECUTE dbo.DatabaseBackup @Databases = 'USER_DATABASES', @Directory = 'C:\Backup', @BackupType = 'LOG', @LogSizeSinceLastLogBackup = 1024, @TimeSinceLastLogBackup = 300
沒有從 IndexOptimize 儲存過程中執行日誌備份的選項。
請注意,您可以有不同的事務日誌備份計劃。通常你可能讓它每 15 分鐘或 30 分鐘執行一次,但在索引優化執行時每 5 分鐘執行一次。您可以手動執行此操作(設置多個計劃,根據索引優化的通常執行時間對增加的執行進行計時),或動態執行此操作(在開始時增加作業頻率,完成後重新設置)。