web-dev-qa-db-ja.com

MS SQL 2008はすべてRAM上にありますか?

SQL 2008の使用経験はありますが、すべてRAMにありますか?特定のものをより速くしようとしています、そしてこれを追求するかもしれません、ありがとう

7
Tim

「すべてRAM内」の意味によって異なります。

RAMドライブからデータベースを実行したい場合は、これが可能である可能性は低いことがわかります(何らかのRAMドライブカードがない限り)これは、SQL Serverが拒否するため、通常のディスクのようにOSに見えます(つまり、SATAまたはPATAインターフェイスを提供します)。書き込みデータは保持するのに十分重要であり、揮発性の記憶媒体に書き込むことによってリスクを冒すことはないと想定しています。 VMで実行し、そのVMをRAMドライブから実行することで、だまされる可能性がありますが、私は同じ理由(停電または再起動の状況が発生した場合にすべてのデータが失われる)と、仮想化ソリューションからのその他のパフォーマンスヒットのコレクションがあるため、これを試すことはお勧めしません。

問題が読み取りアクティビティの遅延である場合(つまり、ディスクからの読み取りにつながる多くの操作の場合は、マシンのRAMの量を増やして、通常のワーキングセットよりも大きくするか、さらに適切にする)データベース全体よりも大きい。このように、人工的なRAM制限(IIRC Express Editionは1Gbを超えて使用しない)を課すSQL Serverのエディションがない限り、大量のメモリを使用します。読み取ったものをすべてRAMにキャッシュしておくため、次に必要になったときにすばやく読み取ることができます。データをRAM anyにプリロードしたい場合クリアされてから(つまり、更新プログラムのインストールによる再起動後)、すべてのインデックスページとデータページを強制的にスキャンしてメモリに読み込むスクリプトを作成できます。

問題の原因が多くの書き込み操作である場合は、ディスクレイアウトを最適化すると役立つ場合があります。データベースについて詳しく知らなければ、具体的なヒントを提供することはできませんが、標準的な経験則(データファイル、トランザクションログ、tempdbを別々の物理ドライブに保存するなど)が役立つ場合があります。

10
David Spillett

デフォルトでは、SQLServerはサーバーで使用可能なすべてのRAMを使用します。ベストプラクティスは、SQL Serverが2〜4ギガ少なくなるように構成することですRAMサーバーには実際にあります(他にインストールされているもの、使用しているSQL CLRの量などによって異なります)。SQLServerはサーバーのメモリをバッファーキャッシュとして使用するため、データをディスクから読み取る必要があります。可能な限りまれに。RAM SQL Serverが利用できるデータが多いほど、SQL Serverがメモリにロードできるデータが多くなります。完璧な作業では、SQL Serverがディスクから読み取ることはほとんどありません(起動時を除いて、データはある時点でディスクから読み取る必要があるため)、必要なディスクIOは書き込みIOのみです。

8
mrdenny

RAMディスクでSQLServerを実行することは、マシンのページファイルをRAMに設定するのと同じです。システムの期待を裏切ることになります。

SQL Serverは実際にはオペレーティングシステムによく似ており、独自のバージョンのプロセス、スレッド、独自のメモリマネージャーなどがあります。では、SQLServerをRAMディスクで実行するとどうなるでしょうか?

  1. データベースの一貫性が失われます。サーバーに障害が発生した場合、データが失われますになります。標準構成のSQLServer しませんコミットされたデータを失います。
  2. SQL Serverは、すでにRAMにあるデータに対して、バッファプールとさまざまなキャッシュを使用するため、メモリを非効率的に使用することになります。最悪のシナリオでは、SQLServerを以下に制限します。システムにあるメモリの50%。大部分はデータベースやログファイルの保存に使用されることになり、SQL Serverは依然として内部の最適化されたバッファプールにデータを入れようとし、データをバッファリングするのに十分なメモリが不足します。

最初は最も重要です。 RAMディスク上のSQLServerは、障害が発生した場合、トランザクションの一貫性がなくなります。他に何も問題はありませんが、確かにあります。 RAMディスクでSQLServerのデータベースまたはログファイルを実行することによる技術的な利点はありません。リスクを上回る可能性があります。

5
Aaron Friel