レポート目的でデータベーススナップショットを使用する利点


8

レポート目的でデータベースのスナップショットを使用することのパフォーマンス上の利点は何ですか?

私の見たところ、元のデータベースへの書き込みごとに、スナップショット自体に別の書き込みを行う必要があるため、おそらくパフォーマンスが低下します。

その時点までのデータのレポートを作成したいときはいつでもスナップショットを使用することがわかりますが、それはパフォーマンスのカテゴリに分類されません。

繰り返しますが、パフォーマンス上の利点はありますか?

回答:


7

運用OLTPサーバーにあるデータベーススナップショットを使用すると、おそらくパフォーマンスが低下します。主な理由は2つあります。

  1. 余分な書き込みオーバーヘッド。スナップショットはコピーオンライトであるため、これは明らかにパフォーマンスに影響します。

  2. スナップショットはディスク上の古いデータベースのページを共有しますが、バッファープール内の独自のメモリを使用します。大きなテーブルがある場合、変更されていないページであっても、OLTPデータベースとスナップショットの両方でメモリを消費することになります。このため、メモリ使用量が多くなり、サーバーに空きRAMの負荷がない場合、ディスクI / Oが増える可能性があります。

したがって、1台のサーバーのみでレポートを煩わしくないようにする場合は、OLTPデータベースにクエリを実行し、WITH(NOLOCK)ヒントを使用して、必要に応じてリソースガバナーを使用する方がよいでしょう。その上で、ある種のスケールアウトシステム(ログ配布、ミラーリングなど)を調べます。


スナップショットは状況を悪化させる可能性があることには同意しますが、2008 R2を使用している場合、レポートを作成するときにヒントNOLOCKはOLTPのパフォーマンスに役立ちません。 stackoverflow.com/questions/15770402/…–
James Jenkins

1

DBスナップショットを使用することで得られるパフォーマンス上の利点の1つは、レポートにスナップショットを使用すると、ロックとブロックの問題が大幅に軽減されることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.