アプリケーションで問題が発生しているオープントランザクションを保持している多くのスリープセッションが発生しているので、私はSET-OPTION XACT_ABORT ON
を試しています。SQL Sever 2008のロールバックカウント数
オプションを反転すると効果があるかどうかを測定する方法はありますか? 私は一日あたりのロールバック数を考えています。どうすればこれらを集めることができますか?
私はです。SQL Server 2008 SP4です。
アプリケーションで問題が発生しているオープントランザクションを保持している多くのスリープセッションが発生しているので、私はSET-OPTION XACT_ABORT ON
を試しています。SQL Sever 2008のロールバックカウント数
オプションを反転すると効果があるかどうかを測定する方法はありますか? 私は一日あたりのロールバック数を考えています。どうすればこれらを集めることができますか?
私はです。SQL Server 2008 SP4です。
データベースが完全復旧Model.Youである考慮すると、一日あたりに撮影したすべてのトランザクションログバックアップを組み合わせて、それを照会することができます...
SELECT
CASE
WHEN OPERATION='LOP_ABORT_XACT' THEN 'COMMITS'
ELSE 'ROLLBACKS' END AS 'OPERATIONS'
,COUNT(*) AS CNT
FROM FN_DBLOG(NULL,NULL) WHERE OPERATION IN ('LOP_COMMIT_XACT','LOP_ABORT_XACT')
GROUP BY OPERATION
私はいくつかのサンプルデータを使用していくつかのテストをしました。..
Begin tran test1
insert into t1
select 3
rollback
出力:
Operations cnt
Commits 3
RollBacks 4
コメントどおり
更新:
1.since影響下にこれを持つことができます作成したバックアップではなく、アクティブTLOGでこれを..doingアクティブログ上でこれを行うお勧めします
http://rusanu.com/2014/03/10/how-to-read-and-interpret-the-sql-server-log/ 01:ログ・スキャン、あなたのログのバックアップのサイズに応じて、サーバー上のTransaction log truncation will be prevented
2.Huge IO負荷、since the output of ::fn_dblog can easily go into millions of rows
の参照はありません
これは、それ自体は悪いideeaではありませんが、ログを読み戻す、中程度の負荷のサーバー上で、高価な非常に*されるだろうと考えています。 –
それは本当です、私はこれを明確にするためにさらに追加します – TheGameiswar
ありがとう、それは完璧に動作します。私は復元されたバージョンでそれを実行するためにちょっとした作業をしなければなりません。 –