インスタンスごとにSQL Server ExpressのメモリとCPUの制限はありますか?


32

サーバーに8GBのRAMがあり、SQL Server Expressの4つのインスタンスを実行する場合、SQL Serverが使用する合計メモリ制限は1GBですか、4GBですか?

このように複数のインスタンスを実行して、各データベースがリソースをより有効に使用できるようにすることをお勧めしますか(サーバーに十分なリソースがある場合)。

回答:


27

サーバーに8GBのRAMがあり、SQL Expressの4つのインスタンスを実行している場合、SQL Serverが使用する合計メモリ制限は1GBですか、4GBですか?

各インスタンスは、バッファプールに最大1GBのメモリを使用できます。すべてのメモリ割り当てがバッファプールを経由するわけではないため、各インスタンスは合計で1GBを少し超える量を使用できます。あなたの場合、バッファプールの4つのインスタンスが使用する最大メモリは4GBです。

BOLエキス

確認するために、SQL Server 2008 Express Database Engineの2つのインスタンスを起動し、いくつかのアクティビティを実行して(個別の)バッファープールをロードし、DBCC MEMORYSTATUSまたはsys.dm_os_buffer_descriptors DMV を使用してバッファーの数をカウントします。

以下の物理メモリ使用量の数値は、データベースエンジンの各インスタンスのシステムDMV sys.dm_os_process_memoryに対する同時クエリを使用して取得されました。

SELECT 
    dopm.physical_memory_in_use_kb 
FROM sys.dm_os_process_memory AS dopm;

出力:

╔═══════════╦═══════════╗
 Instance1  Instance2 
╠═══════════╬═══════════╣
   1102872    1059812 
╚═══════════╩═══════════╝

前述のように、物理メモリの合計使用量にはバッファプールの使用量以上のものが含まれるため、これらはそれぞれ1GBをわずかに超えています。

このように複数のインスタンスを実行して、各データベースがリソースをより有効に使用できるようにすることをお勧めしますか(サーバーに十分なリソースがある場合)。

各インスタンスのデータベースが機能的に独立している場合、この方法でExpressの複数のインスタンスを実行することは少なくとも実行可能ですが、構成とメンテナンスに注意を払う必要がありますが、より複雑になります。

目的の使用法がライセンスと一致する場合は、フル機能の(そして非常に安価な)Developer Editionなどの別のエディションを使用すると、より適切にサービスが提供される場合があります。この点について明確な答えを得るには、状況についてもっと詳しく言う必要があります。


3
また、注意深い読者のために:SQL Server Database Engine手段A Single Instance。接続する接続ダイアログサーバー(localhost\devvsなどlocalhost\test)を変更する必要があるたびに、それは新しい「インスタンス」または新しい「エンジン」になります。私はそれをクリアすると思った。
jcolebrand

7

個別のプロセスがあるため、すべてのインスタンスは個別にカウントされます。


1
私はあなたがリミッターがすべてのプロセスに適用されていないことを確信していると思いますか?

-8

SQL Expressでは、データベースエンジンは1 GBのRAMしか消費できず、DBは10 GBを超えることはできません。

そのため、4つのインスタンスが1 GBのRAMを共有する必要があります。

詳細については、http://msdn.microsoft.com/en-us/library/cc645993(v = SQL.110).aspxをご覧ください

ここでのStack Overflowの同様の議論では、これは正しい答えであると言われています

このページは、SQL Server Express 2005に関するものですが、同じことを言っています:http : //www.edugeek.net/forums/windows-server-2000-2003/55183-sql-server-express-2005-memory-limit-インスタンスごと


3
必ずしも従う必要はありません-サーバーごとまたはインスタンスごとに1つのエンジンですか?

1
OK、それはそれを意味しますが、メモリ制限ラインでそれを逃した可能性もあります。

1
インターネット上にあるからといって、それは真実でなければなりません。彼らはインターネット上で何か間違ったことを決して許さないでしょう。〜ここでの問題は、すべてのSQL Expressを永久に制限するという唯一の目的のために、管理プロセスまたはOSに焼き付けられた何かが必​​要だということです。私は実際にそれが起こったとは思わない(別名、私は酸素を吸っており、ロジックを本当によく追跡できるという事実に基づいて絶対に起こらなかった)ので、問題の事実はプロセス自体がRAMの量を管理している中古。
jcolebrand

2
当然のことながら悪い答えであるダウンボットを削除するように人々に懇願することは、引用元に関係なく、アップボットを獲得する可能性は低いです。本当にソースを引用したい場合は、いくつかのインスタンスをロードして、メモリ内の実際のロードを表示します。それが確実に知る唯一の方法です。それか、SQL Expressの動作を管理するMicrosoftコードを見せてください。各サービスは上から下に自己完結しているため、常にインスタンスごとの管理です。すべての管理サービスはポートを介して機能します。
jcolebrand

2
Maximum memory utilized (SQL Server Database Engine)彼らはライン上でそうであるように、彼らはそこに同じ用語を使用する方法に注意してください:Maximum Compute Capacity Used by a Single Instance (SQL Server Database Engine)1(自宅でそれらの再生のために、それのポイントは、彼らが同じ測定であるということです)msdn.microsoft.com/en-us/library/...とも私はリンクされたSOの答えが間違っている、間違っている、というのが大好きです。「1コアまたは4ソケット」で開始すると、エディターは正しくコピーアンドペーストすることさえできません。
jcolebrand
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.