
説明/参照:
Explanation:
DB1:DELAYED_DURABILITY = FORCED
シナリオから:数千のレコードがDB1に挿入されるか、1秒ごとに更新されます。インサートは、会社の開発者が制御しないさまざまな外部アプリケーションによって作成されます。トランザクションログの書き込みレイテンシがパフォーマンスのボトルネックになっていることがわかります。このデータベースのすべてのデータが一時的な性質を持つため、サーバーのシャットダウン時にデータ損失を許容することができます。
DELAYED_DURABILITY = FORCEDの設定では、データベース上でコミットするすべてのトランザクションの遅延が長くなります。
DELAYED_DURABILITY = ALLOWED設定では、各トランザクションの耐久性はトランザクションレベルで決定されます。
注:遅延トランザクションの耐久性により、システム内の待ち時間と競合の両方が軽減されます。これは、
*トランザクションコミット処理は、ログIOが終了するのを待っておらず、クライアントに制御を返します。
*並行トランザクションはログIOに対して競合する可能性が低くなります。その代わりに、ログバッファをより大きなチャンクでディスクにフラッシュし、競合を減らし、スループットを向上させることができます。
DB2:ALLOW_SNAPSHOT_ISOLATION ONおよびREAD_COMMITTED_SNAPSHOT ON
スナップショットの分離により、OLTPアプリケーションの並行性が向上します。
スナップショットの分離は、トランザクションで使用される前にALLOW_SNAPSHOT_ISOLATION ONデータベース・オプションを設定して有効にする必要があります。
次の文は、スナップショットの分離を有効にし、デフォルトのREAD COMMITTED動作をSNAPSHOTに置き換えます。
ALTER DATABASE MyDatabase
SET ALLOW_SNAPSHOT_ISOLATION ON
ALTER DATABASE MyDatabase
READ_COMMITTED_SNAPSHOTをONに設定する
READ_COMMITTED_SNAPSHOT ONオプションを設定すると、既定のREAD COMMITTED分離レベルのバージョン管理された行にアクセスできます。
シナリオから:DB2データベースがSQL Server 2012からSQL Server 2016に移行されました。毎秒何千ものレコードが更新または挿入されます。 WRITELOG待機タイプは、最も集約された待機タイプであることがわかります。ほとんどの書き込みでは、サーバーがシャットダウンした場合のデータ消失に対する耐性がない必要があります。
このビジネスでは、サーバーのシャットダウン時にデータ損失が許容される特定の書き込み照会が特定されています。
参考文献:
https://msdn.microsoft.com/en-us/library/dn449490.aspx
https://msdn.microsoft.com/en-us/library/tcbchxcb(v=vs.110).aspx