SQLサーバーデータベースを読み取り専用にする利点?


8

私はレポートデータベースを使用しています。これは、すべての実用的な目的で読み取り専用のデータベースです。データが作成され、動的データベースが生成され、このデータベースで表示されます。

このデータベースを読み取り専用にすることを考えていました。

読み取り専用データベースに関して私が聞きたいことのいくつかは

  1. データのみが読み取り専用ですか?このデータベースにインデックスまたはビューを作成できますか?
  2. 読み取り専用データベースを使用することのパフォーマンス上の利点は何ですか?例:共有ロックなどを使用したSELECTクエリ
  3. 読み取り専用データベースを使用することの欠点はありますか?
  4. 読み取り専用データベースを使用する際に従うべきベストプラクティスはありますか?

回答:


16
  1. データベースが読み取り専用の場合はスキーマを変更できませんが、すべてのユーザーテーブルを新しいファイルグループに配置して、読み取り専用としてマークすることができます。
  2. ロックを行わないことで、パフォーマンスがわずかに向上することが期待できます。
  3. 2012より前のバージョンのSQL Serverでは、読み取り専用データベースで統計を自動作成または更新できません。
  4. 読み取り専用にする前に、論理的な断片化をすべて削除して、ページ密度をできるだけ高くすることもできます。デフォルト以外のFILL_FACTOR設定は、読み取り専用環境ではメリットがありません。さらにSELECT、バージョンが2012未満の場合、クエリで使用されると予想される統計を作成/更新します。

1と4、素晴らしいアイデア。
Mark Storey-Smith

9
  1. データベース全体は読み取り専用であるため、インデックスやビューを追加することはできません。
  2. ロックは必要ないため、共有データベースロック以外のクエリではロックは取得されません。明らかに、ブロッキングも発生しないことを意味します。
  3. そうではありません。
  4. 提案できるものはありません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.