私たちには巨大なDMLスクリプトがあります。これはトランザクションを開き、多くの変更を行い、それがコミットするだけです。SQL ServerのROLLBACKトランザクションは永遠に完了しました。どうして?
最近、私はこのスクリプトを(アプリケーション経由で)起動させていました。かなり時間がかかっていたので、セッションを終了してROLLBACKを起動しました。
これはROLLBACKが永久に奪取され、さらに多くのCPU(100%の稼働率)を使用していたことが問題です。このセッション(exec DMVを使用)を監視していたとき、IO関連(IO_COMPLETION、PAGE_IO_LATCHなど)。
私の質問は です。1.ロールバックには時間がかかりますか?すべての復帰変更をLOGファイルに書き込む必要があるからですか?そしてIOがこのLOGファイルに対するIO操作に関連しているのを待っていますか? 2. ROLLBACKメカニズムの仕組みを説明するオンラインリソースがありますか?
はSOのDBA側の別の記事に基づいてあなたに
ここをクリックhttps://stackoverflow.com/questions/2305277 – devio
なぜそれを行うには多くの時間をかける場合、それは同じものを元に戻すには多くの時間がかからないと思うのですか?また、ロック/デッドロックによってトランザクションを保持することもできます。 – jean
@jeanあなたのご意見は分かりません。 Devio、リンクをありがとう。 – naz