Ola-Hallengren
@@TRANCOUNT 檢查的原因?
多年來,我們一直在使用 Ola Hallengren 的 SQL 函式。在 2015 年至 2018 年之間的某個時間,IndexOptimize 中添加了對未結交易的檢查。所以現在,升級到目前版本後,sp 失敗並顯示“事務計數不是 0”。
問題:檢查的功能原因是什麼?在我看來,沒有檢查的舊版本也執行良好。取出支票是否安全?
問候霍爾格
我的猜測是您正在
IndexOptimize
現有事務中執行。Ola 的腳本在程序一開始就檢查是否有未結交易。您是否真的希望該
IndexOptimize
程序在一個事務下執行並可能填滿日誌以及可能的阻塞。Ola的程式碼有多種
begin transaction
andcommit
語句。如果程序已經在事務下執行,則附加begin transaction
語句會創建嵌套事務,並且後續commit
語句只會遞減@@trancount
,但實際上不會commit
起作用。嘗試在沒有明確的
begin transaction
.