Ola-Hallengren

@@TRANCOUNT 檢查的原因?

  • December 18, 2018

多年來,我們一直在使用 Ola Hallengren 的 SQL 函式。在 2015 年至 2018 年之間的某個時間,IndexOptimize 中添加了對未結交易的檢查。所以現在,升級到目前版本後,sp 失敗並顯示“事務計數不是 0”。

問題:檢查的功能原因是什麼?在我看來,沒有檢查的舊版本也執行良好。取出支票是否安全?

問候霍爾格

我的猜測是您正在IndexOptimize現有事務中執行。Ola 的腳本在程序一開始就檢查是否有未結交易。

您是否真的希望該IndexOptimize程序在一個事務下執行可能填滿日誌以及可能的阻塞。

Ola的程式碼有多種begin transactionandcommit語句。如果程序已經在事務下執行,則附加begin transaction語句會創建嵌套事務,並且後續commit語句只會遞減@@trancount,但實際上不會commit起作用。

嘗試在沒有明確的begin transaction.

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