Index-Tuning

在 IndexOptimize.sql 中添加參數以在處理每個索引後執行自定義命令

  • June 8, 2018

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 分鐘執行一次。您可以手動執行此操作(設置多個計劃,根據索引優化的通常執行時間對增加的執行進行計時),或動態執行此操作(在開始時增加作業頻率,完成後重新設置)。

引用自:https://dba.stackexchange.com/questions/208925