SQL 2008の使用経験はありますが、すべてRAMにありますか?特定のものをより速くしようとしています、そしてこれを追求するかもしれません、ありがとう
「すべてRAM内」の意味によって異なります。
RAMドライブからデータベースを実行したい場合は、これが可能である可能性は低いことがわかります(何らかのRAMドライブカードがない限り)これは、SQL Serverが拒否するため、通常のディスクのようにOSに見えます(つまり、SATAまたはPATAインターフェイスを提供します)。書き込みデータは保持するのに十分重要であり、揮発性の記憶媒体に書き込むことによってリスクを冒すことはないと想定しています。 VMで実行し、そのVMをRAMドライブから実行することで、だまされる可能性がありますが、私は同じ理由(停電または再起動の状況が発生した場合にすべてのデータが失われる)と、仮想化ソリューションからのその他のパフォーマンスヒットのコレクションがあるため、これを試すことはお勧めしません。
問題が読み取りアクティビティの遅延である場合(つまり、ディスクからの読み取りにつながる多くの操作の場合は、マシンのRAMの量を増やして、通常のワーキングセットよりも大きくするか、さらに適切にする)データベース全体よりも大きい。このように、人工的なRAM制限(IIRC Express Editionは1Gbを超えて使用しない)を課すSQL Serverのエディションがない限り、大量のメモリを使用します。読み取ったものをすべてRAMにキャッシュしておくため、次に必要になったときにすばやく読み取ることができます。データをRAM anyにプリロードしたい場合クリアされてから(つまり、更新プログラムのインストールによる再起動後)、すべてのインデックスページとデータページを強制的にスキャンしてメモリに読み込むスクリプトを作成できます。
問題の原因が多くの書き込み操作である場合は、ディスクレイアウトを最適化すると役立つ場合があります。データベースについて詳しく知らなければ、具体的なヒントを提供することはできませんが、標準的な経験則(データファイル、トランザクションログ、tempdbを別々の物理ドライブに保存するなど)が役立つ場合があります。
デフォルトでは、SQLServerはサーバーで使用可能なすべてのRAMを使用します。ベストプラクティスは、SQL Serverが2〜4ギガ少なくなるように構成することですRAMサーバーには実際にあります(他にインストールされているもの、使用しているSQL CLRの量などによって異なります)。SQLServerはサーバーのメモリをバッファーキャッシュとして使用するため、データをディスクから読み取る必要があります。可能な限りまれに。RAM SQL Serverが利用できるデータが多いほど、SQL Serverがメモリにロードできるデータが多くなります。完璧な作業では、SQL Serverがディスクから読み取ることはほとんどありません(起動時を除いて、データはある時点でディスクから読み取る必要があるため)、必要なディスクIOは書き込みIOのみです。
RAMディスクでSQLServerを実行することは、マシンのページファイルをRAMに設定するのと同じです。システムの期待を裏切ることになります。
SQL Serverは実際にはオペレーティングシステムによく似ており、独自のバージョンのプロセス、スレッド、独自のメモリマネージャーなどがあります。では、SQLServerをRAMディスクで実行するとどうなるでしょうか?
最初は最も重要です。 RAMディスク上のSQLServerは、障害が発生した場合、トランザクションの一貫性がなくなります。他に何も問題はありませんが、確かにあります。 RAMディスクでSQLServerのデータベースまたはログファイルを実行することによる技術的な利点はありません。リスクを上回る可能性があります。