SQL Server でバッファ プール メモリのページングを減らす方法

適用対象: Microsoft SQL Server 2005 Standard X64 EditionMicrosoft SQL Server 2005 Enterprise X64 EditionSQL Server 2008 Standard

概要


SQL Server は、システム上の現在の負荷とアクティビティのメモリ要件に基づいて動的メモリ管理を実行します。 Windows では、SQL Server は QueryMemoryResourceNotification Windows API によって提供されるメモリ通知メカニズムを使用できます。 SQL Server は、この情報に基づいて、Windows API またはメモリ計算から、特定のシステム上の現在のメモリ状況に応答します。 これにより、次の利点があります。
  • システムは、SQL Server プロセスのワーキング セットをページ アウトしません。
  • 物理 I/O の必要性を減らすために、必要なデータベース ページをメモリ内で使用できます。
詳細については、SQL Server オンライン ブックの「動的メモリ管理」および「サーバー メモリ オプション」を参照してください。

現象


SQL Server で発生する可能性のある次の問題を検討します。
  • SQL Server のパフォーマンスが急激に低下します。
  • SQL Server を実行しているコンピュータが短時間応答を停止します。
  • SQL Server に接続するアプリケーションに対してタイムアウトが発生します。
  • 問題は、単純なコマンドを実行したり、システム上でアプリケーションを使用したりすると発生します。
これらの問題が発生すると、次のいずれかのエラー メッセージが SQL Server エラー ログに記録されることがあります。
エラー メッセージ 1
DateTime spid1s SQL Server プロセス メモリの重要な部分がページ アウトされました。 これにより、パフォーマンスが低下する可能性があります。 時間: 0 秒。 ワーキング セット (KB): 1086400、コミット済み (KB): 2160928、メモリ使用率: 50%。
エラー メッセージ 2
DateTime spid1s SQL Server プロセス メモリの重要な部分がページ アウトされました。 これにより、パフォーマンスが低下する可能性があります。 時間: 315 秒。 ワーキング セット (KB): 410156、コミット済み (KB): 2201296、メモリ使用率: 18%。
エラー メッセージ 3
DateTime spid1s SQL Server プロセス メモリの重要な部分がページ アウトされました。 これにより、パフォーマンスが低下する可能性があります。 時間: 646 秒。 ワーキング セット (KB): 901904、コミット済み (KB): 2215752、メモリ使用率: 40%。

 
また、SQL Server サポート チームは、SQL Server エラー ログまたは Windows イベント ログに記録される追加のエラー メッセージまたは警告を確認しました。 これらのメッセージは次のようになります。
DateTime Server      Resource Monitor (0x13c43) Worker 0x0412C1E8 appears to be non-yielding on Node 0. Memory freed: 34152 KB. Approx CPU Used: kernel 171 ms, user 140 ms, Interval: 125093.DateTime Server      * *******************************************************************************DateTime Server      * BEGIN STACK DUMP:DateTime Server      *   DateTime spid 0DateTime Server      * Non-yielding Resource MonitorDateTime Server      * *******************************************************************************DateTime Server      * *******************************************************************************DateTime Server      * BEGIN STACK DUMP:DateTime Server      *   DateTime spid 0DateTime Server      * Non-yielding IOCP ListenerDateTime Server      * *******************************************************************************DateTime spid2s      LazyWriter: warning, no free buffers found.DateTime spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) is marked for unload due to memory pressure.DateTime spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) unloaded.DateTime Logon       Error: 17189, Severity: 16, State: 1.DateTime Logon       SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems. [CLIENT: xx.xxx.xx.xx]Event Type:ErrorEvent Source:SQLBrowserEvent ID:8Description: The SQLBrowser service was unable to process a client request.  
これらの追加のエラー メッセージまたは警告は、"SQL Server プロセス メモリの重要な部分がページ アウトされました" というエラー メッセージと共に表示されることがあります。 いくつかのインスタンスで、これらの追加のエラー メッセージまたは警告は、エラー メッセージと一緒に表示されませんでした。

これらのエラー メッセージまたは警告のいずれかに気付いた場合は、この資料に記載されている SQL Server ワーキング セットのページングを考えられる原因の 1 つとして検討してください。 これらの追加のエラー メッセージまたは警告は、他のさまざまな条件または原因により、ログに記録される可能性があります。

原因


この問題は、Windows オペレーティング システムが SQL Server プロセスのワーキング セットをページ アウトするために発生します。

これらのエラー メッセージは、SQL Server プロセスのワーキング セットが、SQL Server プロセスにコミットされているメモリの 50% 以下に達するとログに記録されます。 これらのエラー メッセージを使用すると、Windows オペレーティング システムが SQL Server プロセスのワーキング セットをページ アウトするため、SQL Server のパフォーマンスが大幅に低下するケースを特定できます。 さらに、これらのエラー メッセージは、最初の 30 分間に 5 分ごとにログに記録されます。 最初の 30 分後、これらのエラー メッセージの頻度は、頻度が 1 日の最大値に達するまで 2 倍になります。

この問題が発生すると、システム上の他のアプリケーションのワーキング セットも同時にページ アウトされます。
詳細については、次を参照してください。

SQL Server ワーキング セット メッセージ

これとは別に、このエラー メッセージのインスタンスが表示される可能性がある既知の問題が SQL Server に存在します。 エラー メッセージは、SQL Server の起動プロセス中に SQL Server エラー ログに記録されます。 エラー メッセージは、誤った警告である可能性があります。 したがって、ワーキング セットのトリムが実際に発生したことを示さない場合があります。 詳細については、次を参照してください。

SQL Server は、初期起動フェーズ中にワーキング セット トリム警告メッセージを報告します。

VM 設定でメモリの割り当てを超えています。 たとえば、HyperV または VMWare バルーン ドライバーの問題です。 詳細については、次を参照してください。

1003470 バルーン ドライバーがメモリを保持し続けるため、仮想マシン ゲスト オペレーティング システムのパフォーマンスの問題が発生する

2001003 ESX/ESXi 仮想マシンのパフォーマンスの問題のトラブルシューティング

回避策


この問題を回避する前に、「この問題のトラブルシューティング方法」に記載されている手順を実行して、この問題を解決してください。

この問題が引き続き発生する場合は、物理メモリ内のバッファー プールに割り当てられているメモリをロックすることによって、Windows オペレーティング システムが SQL Server プロセスのバッファー プール メモリをページングしないようにできます。 メモリをロックするには、SQL Server サービスのスタートアップ アカウントとして使用されるユーザー アカウントにメモリ内のページをロックするユーザー権利を割り当てます。

: メモリ内でページをロックすると、SQL Server によって管理されるメモリがページ アウトされません。 ただし、スレッド スタック、EXE および任意の DLL イメージ、ヒープ メモリ、CLR メモリは、OS によってページ アウトできます。

注: SQL Server 2008 SP1 用の累積的な更新プログラム 2 以降、SQL Server Standard および Enterprise Edition の両方で、メモリ内のページをロックするユーザー権利を使用できます。 ロックされたページのサポートの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

970070 SQL Server 2005 Standard Edition および SQL Server 2008 Standard Editionでのロックされたページのサポート
 
メモリ内のページをロックするユーザー権利を割り当てるには、次の手順を実行します。
  1. [スタート] ボタンをクリックし、[実行] をクリックします。次に、「gpedit.msc」と入力し、[OK] をクリックします。

    :
    [グループ ポリシー] ダイアログ ボックスが表示されます。
  2. [コンピューターの構成] を展開し、[Windows の設定] を展開します。
  3. [セキュリティの設定] を展開し、
    [ローカル ポリシー] を展開します。
  4. [ユーザー権利の割り当て] をクリックし、[メモリ内のページをロックする] をダブルクリックします。
  5. [ローカル セキュリティ ポリシーの設定] ダイアログ ボックスで、[グループとユーザーの追加] をクリックします。
  6. [ユーザーまたはグループの選択] ダイアログ ボックスで、Sqlservr.exe ファイルを実行するアクセス許可を持つアカウントを追加し、
    [OK] をクリックします。
  7. [グループ ポリシー] ダイアログ ボックスを閉じます。
  8. SQL Server サービスを再開します。
メモリ内のページをロックするユーザー権利を割り当て、SQL Server サービスを再起動すると、Windows オペレーティング システムは SQL Server プロセス内でバッファ プール メモリをページ アウトしなくなります。 ただし、Windows オペレーティング システムは、SQL Server プロセス内の非バッファ プール メモリをページ アウトできます。

起動時に SQL Server エラー ログに次のメッセージが書き込まれるようにすることで、ユーザー権利が SQL Server のインスタンスで使用されていることを検証できます。
"バッファー プールにロックされたページを使用する"
このメッセージは SQL Server にのみ適用されます。 ERRORLOG のこのメッセージの詳細については、次を参照してください。Windows オペレーティング システムがバッファ プール以外のメモリをページ アウトしても、パフォーマンスの問題が発生する可能性があります。 ただし、"現象" セクションに記載されているエラー メッセージは、SQL Server エラー ログに記録されません。

詳細情報


この問題のトラブルシューティング方法

この問題が発生する可能性があるカテゴリは、大きく分けて 3 つあります。

  1. アプリケーション関連の問題: すべてのアプリケーションが一緒に使用可能な物理メモリを使い果たし、OS はリソースに対する新しいアプリケーション要求のためにメモリを解放する必要があります。 通常、ここでのアプローチは、メモリを使い果たしているアプリケーションを見つけ、RAM の枯渇につながることなく、メモリ間でメモリのバランスを取るために必要な手順を実行することです。
  2. デバイス ドライバーの問題: デバイス ドライバがメモリ割り当て関数を誤って呼び出すと、すべてのプロセスのワーキング セット ページングが発生することがあります。
  3. オペレーション システムの問題
この問題を解決するには、以下の手順を実行します。
  1. アプリケーション関連の問題: 

    アプリケーションを組み合わせると、システム上のすべての RAM が消費される場合があります。 新しいメモリ要求が行われた場合、OS はそれらを満たす必要があり、空きメモリがない場合は、実行中のアプリケーションのワーキング セットをトリミングしてメモリ要求を満たします。 このように、すべてのアプリケーションが大幅に低下するわけではない場合、ほとんどのアプリケーションのワーキング セットが大幅に低下することがあります。 これを確認するには、システム上のすべてのアプリケーションに対して次のパフォーマンス モニター カウンターを収集します。

    パフォーマンス オブジェクト: 処理
    カウンター: ワーキング セット

    また、次のカウンターを監視して、システムで使用可能な物理メモリの量を関連付けます。

    パフォーマンス オブジェクト: メモリ
    カウンター: 使用可能なメモリ (MB)

    一般的な動作は、使用可能なメモリを 0 MB に近づけると同時に、システム上のほとんどの (すべての) プロセスに対してワーキング セット カウンターを突然ドロップすることです。 このような現象が発生した場合は、SQL Server の最大サーバー メモリの削減など、システムのメモリ使用量を減らすための手順が必要になる場合があります。

    アプリケーションはシステム キャッシュを使用しすぎて、システム キャッシュの増加を引き起こす可能性があります。 システム キャッシュの増加に対応するために、システムは SQL Server プロセスまたは他のアプリケーションのワーキング セットをページ アウトします。 この問題が発生した場合は、アプリケーションでいくつかのメモリ管理機能を使用できます。 これらの関数は、ファイル I/O 操作がアプリケーションで使用できるシステム キャッシュ領域を制御します。 たとえば、ファイル I/O 操作で使用できるシステム キャッシュ領域を制御するために、SetSystemFileCacheSize 関数と GetSystemFileCacheSize 関数を使用できます。

    Memory パフォーマンス オブジェクトを使用すると、このオブジェクトのさまざまなカウンターの値を表示して、システム キャッシュ ワーキング セットがメモリを使用しすぎているかどうかを判断できます。 たとえば、[キャッシュ バイト] カウンターと [システム キャッシュ常駐バイト] カウンターを表示できます。 この方法の詳細については、以下の Microsoft Web サイトを参照してください。

    キャッシュが多すぎます

    Microsoft Windows Dynamic Cache Service

    976618 
    システム ファイル キャッシュが物理 RAM の大部分を消費すると、アプリケーションとサービスでパフォーマンスの問題が発生する

    "Microsoft Windows Dynamic Cache Service" をダウンロードして展開すると、システム キャッシュによって消費されるメモリを制御できます。

  2. デバイス ドライバーの問題:

    デバイス ドライバーは、MmAllocateContiguousMemory 関数を使用し、 HighestAcceptableAddress パラメーターの値を4 GB 未満に設定した場合、Windows オペレーティング システムは、SQL Server プロセスを含むシステム上のプロセスのワーキング セットをページ アウトする可能性があります。 この問題を解決するには、デバイス ドライバーの製造元に問い合わせて、ドライバーの更新を確認してください。

    デバイス ドライバーがメモリを割り当てようとすると、Windows オペレーティング システムが他のアプリケーションのワーキング セットをページ アウトすることがあります。 この Windows 修正プログラムを使用すると、イベント トレースを使用して、問題の原因となっているデバイス ドライバーを見つけることができます。 ワーキング セットのトリミング動作を引き起こす特定のドライバーの詳細については、MSDN の記事「連続したメモリを割り当てるドライバーの識別」を参照してください。

  3. オペレーション システムの問題: 
    Windows オペレーティング システムが SQL Server プロセスのワーキング セットをページ アウトする原因となる既知の問題を解決するには、次の Microsoft サポート技術情報資料に記載されている修正プログラムを適用します。
     

    : 修正プログラムは累積的です。 新しいバージョンの修正プログラムには、以前のバージョンの修正プログラムが含まれています。

  • システムが高度な TCP 機能を使用している場合、SQL Server セットがトリミングされることがあります。 詳細については、以下のサポート技術情報番号をクリックしてください。

942861 Windows Server を実行しているサーバー上の SQL Server にアプリケーションが接続するときにエラー メッセージ: "一般的なネットワーク エラー"、"通信リンクの障害" または "トランスポート レベルのエラー"

  • Windows Server 2003 を実行しているマルチプロセッサ コンピューターでは、システム プロセスが使用可能なシステム メモリの大部分を消費することがあります。 詳細については、以下のサポート技術情報番号をクリックしてください。

942486 システム プロセスは、Windows Server 2003 を実行しているマルチプロセッサ コンピューターで使用可能なシステム メモリのほとんどを消費する可能性があります。

  • SQL Server が SAP R/3 と共に実行されている場合、ページングの問題が発生する可能性があります。 詳細については、以下のサポート技術情報番号をクリックしてください。

931308 Windows Server 2003 ベースのコンピューターで SAP R/3 プログラムを実行すると、ハード ディスクへのページングが増加することがある

  • Windows Server 2008 で SQL Server を実行している場合は、ワーキング セットのトリミングや、他のオペレーティング システム コンポーネントによる不要な過剰なメモリ消費につながる可能性のある既知の問題に対する修正プログラムを適用する必要があります。 関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

971714 Windows Server 2008 ベースのドメイン コントローラーでレポートを生成する Active Directory 診断テンプレートを使用して Perfmon.exe を実行すると、レポート生成プロセスが応答を停止することがある

  • Windows Server 2008 R2 で SQL Server を実行している場合は、ワーキング セットのトリミングにつながる可能性のある既知の問題に対する修正プログラムを適用する必要があります。 関連情報を参照するには、次のサポート技術情報番号をクリックしてください。

979149 大きなアプリケーションを実行すると、Windows 7 またはWindows Server 2008 R2 を実行しているコンピューターが応答しなくなる

2155311 NUMA ベースのプロセッサを搭載し、スレッドが最初の 4 GB のメモリ内にある大量のメモリを要求した場合に Windows Server 2008 R2 または Windows 7 を実行しているコンピューターでパフォーマンスが低下する

2468345 Storportドライバーが Windows Server 2008 R2 で使用されていると、コンピューターのパフォーマンスが断続的に低下するか応答しなくなる

SQL Server で使用されているメモリを確認する方法 

パフォーマンス モニタを使用すると、メモリ内のロックされたページが有効になっていない場合に SQL Server が使用するメモリを表示できます。

SQL Server は、次のパフォーマンス カウンターを使用して、バッファ プールが割り当てるメモリを公開します。

パフォーマンス オブジェクト: SQL Server: Memory Manager
カウンター: 合計サーバー メモリ (KB)

: SQL Server のインスタンスが名前付きインスタンスの場合、パフォーマンス オブジェクトの名前は次のようになります。

MSSQL$InstanceName: メモリ マネージャ

さらに、次のパフォーマンス カウンターを監視することで、SQL Server に対するページングの影響を測定できます。

パフォーマンス オブジェクト: 処理
カウンター: プライベート バイト
インスタンス: sqlservr

パフォーマンス オブジェクト: 処理
カウンター: ワーキング セット
インスタンス: sqlservr

プライベート バイト カウンターは、現在コミットされている仮想メモリを測定します。 ワーキング セット カウンターは、現在コミットされている仮想メモリの容量が物理メモリ (RAM) を占有しているかを測定します。

ワーキング セット カウンターの値が合計サーバー メモリ (KB) カウンター (またはプライベート バイト) の値より小さい場合は、少なくともバッファ プールの一部であるメモリの一部が SQL Server ワーキング セットからトリミングされました。

また、ディスクに対して読み取りおよび書き込みページを示す次のパフォーマンス カウンターを監視することで、システム全体のページング (ワーキング セット トリミング) を確認することもできます。

パフォーマンス オブジェクト: メモリ
カウンター:  ページ入力 / 秒とページ出力 / 秒

このカウンターを使用してメモリページを特定する方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

889654 64 ビット版の Windows Server 2003 または Windows XP の適切なページング ファイル サイズを決定する方法
 
メモリ内のページをロックするユーザー権利を割り当てて、SQL Server サービスを再起動した後も、SQL Server プロセスのバッファ プールはメモリ リソース通知イベントに応答し、これらのイベントに応じて動的に増減します。 ただし、次のパフォーマンス カウンターでは、メモリ内でロックされているバッファー プールのメモリ割り当てを確認できません。
  • パフォーマンス モニターのプライベート バイト カウンターとワーキング セット カウンター
  • タスク マネージャーの [プロセス] タブの [メモリ使用量] 列
その理由は、メモリ内のロックされたページを有効にすると、SQL Server は AWE API の使用を開始 し、OS 仮想メモリ マネージャーを介してメモリを割り当てないためです。 これらのページがロックされた後、これらのパフォーマンス カウンターは、バッファ プールを使用しない割り当てに対する SQL Server プロセス内のメモリ割り当てを表します。 SQL Server のサーバー メモリの総容量 (KB) カウンター: メモリ マネージャのパフォーマンス オブジェクトは、バッファ プールに割り当てられたメモリを正確に表します。

SQL Server のインスタンスに "メモリ内のページをロックする" ユーザー権利を割り当てる前の重要な考慮事項

メモリ内のページをロックするユーザー権利を割り当てる前に、追加の考慮事項を考慮する必要があります。 正しく構成されていないシステムでこのユーザー権利を割り当てると、システムが不安定になったり、システム全体のパフォーマンスが低下したりする可能性があります。 アプリケーション ログにイベント ID 333 が記録されることがあります。

これらの問題について Microsoft カスタマー サポート サービス (CSS) に問い合わせると、CSS エンジニアから、SQL Server サービスのスタートアップ アカウントとして使用されているユーザー アカウントに対するこのユーザー権利の取り消しを求めるメッセージが表示されることがあります。 この手順は、CSS エンジニアが SQL Server のさまざまなオプションやシステムで実行されている他のアプリケーションに必要な構成に使用できる重要なパフォーマンス データを収集するために必要な場合があります。 CSS エンジニアがパフォーマンス データを収集 したら、SQL Server サービスのスタートアップ アカウントにメモリ内のページをロックするユーザー権利を割り当てることができます。

メモリ内のページをロックするユーザー権利を割り当てる前に、パフォーマンス モニタ ログをキャプチャして、システムにインストールされているさまざまなアプリケーションやサービスのメモリ要件を判断してください。 これらのアプリケーションには、 SQL Server も含まれます。 メモリ要件を確認するには、次のベースライン情報を収集します。
  • 最大サーバー メモリ オプションと最小サーバー メモリ オプションが正しく設定されていることを確認します。 これらのオプションは、SQL Server プロセスのバッファー プールのメモリ要件のみを反映します。 これらのオプションには、SQL Server プロセス内の他のコンポーネントに割り当てられているメモリは含まれません。 これらのコンポーネントは以下のとおりです。
    • SQL Server ワーカー スレッド
    • SQL Server プロセスが SQL Server プロセスのアドレス空間内に読み込むさまざまな DLL およびコンポーネント
    • バックアップと復元操作
  • DLL とコンポーネントには、さまざまな OLE DB プロバイダ、拡張ストアド プロシージャ、sp_OACreate ストアド プロシージャに使用される Microsoft COM オブジェクト、リンク サーバーおよび SQL Server CLR が含まれます。 これらのコンポーネントに割り当てられるメモリは、SQL Server プロセスのアドレス空間の非バッファ プール領域に含まれます。 SQL Server プロセス全体が使用できるメモリの最大量を決定するには、SQL Server プロセスで使用するメモリの合計から、バッファ プールを使用しないコンポーネントに割り当てられているメモリを減算する必要があります。 次に、残りの値を使用して 最大サーバー メモリ オプションを設定できます。 最大サーバー メモリ オプションと最小サーバー メモリ オプションを設定する前に、SQL Server オンライン ブックの「メモリ オプションを手動で設定する」を慎重に確認する必要があります。
  • 他のアプリケーションおよび Windows オペレーティング システム コンポーネントのメモリ要件を確認します。 アプリケーションには、SQL Server エージェント、SQL Server レプリケーション エージェント、SQL Server レポート サービス、SQL Server 分析サービス、SQL Server 統合サービス、SQL Server フルテキスト検索などの他の SQL Server コンポーネントが含まれる場合があります。 バックアップ操作とファイル コピー操作を実行するアプリケーションは、大量のメモリを使用する可能性があります。 一括コピーや、ファイル IO を生成するスナップショット エージェントなどの操作を検討します。 最大サーバー メモリ オプション最小サーバー メモリ オプションの値を決定する場合は、これらすべてのアプリケーションのメモリ要件を考慮する必要があります。 すべてのプロセスに対して、オブジェクトの処理の下にあるプライベート バイト カウンターとワーキング セット カウンターを使用して、特定のプロセスのメモリ要件を判断できます。
  • 既定では、メモリ内のページのロックユーザー権利は、組み込みのローカル システム アカウントに既に割り当てられています。 詳細については、次のマイクロソフト Web サイトを参照してください。
  • ドメイン内のすべての SQL Server プロセスに対して Windows ユーザー アカウントをグローバルに使用する場合は、グループ ポリシー構成を使用して割り当てられているユーザー権利を決定します。 32 ビット SQL Server プロセスでは、このアカウントをスタートアップ アカウントとして使用できます。 ただし、このアカウントでは、アドレス ウィンドウ拡張機能 (AWE) 機能を有効にするために、メモリ内のページをロックするユーザー権利が必要です。 詳細については、SQL Server オンライン ブックの「SQL Server への最大メモリ量の提供」を参照してください。
  • 複数のSQL Server インスタンスに対して 最大サーバー メモリ オプションと 最小サーバー メモリ オプションを構成する前に、SQL Server の各インスタンスの非バッファ プールのメモリ要件を考慮してください。 次に、SQL Server のインスタンスごとに、これらのオプションを構成します。

理想的には、ピーク負荷時にこのベースライン情報を収集します。 したがって、ピーク時の負荷をサポートするために、さまざまなアプリケーションおよびコンポーネントのメモリ要件を決定できます。 メモリー要件は、システム上で実行されているアクティビティーおよびアプリケーションによって、システムごとに異なります。

動的管理ビュー sys.dm_os_process_memory で提供される情報を照会して、システムでメモリ不足状態が発生しているかどうかを確認できます。 詳細については、次のサイトの SQL Server Books Online リファレンスを参照してください。

sys.dm_os_process_memory (Transact-SQL)

ワーキング セットのトリミングを減らす Windows Server 2008 および Windows Server 2008 R2 で追加された機能強化


Windows Server 2008 および Windows Server 2008 R2 では、連続したメモリ割り当てメカニズムが向上します。 この機能強化により、Windows Server 2008 および Windows Server 2008 R2 は、新しいメモリ要求が到着したときにアプリケーションのワーキング セットをページングする場合の影響をある程度軽減できます。 

Microsoft のホワイト ペーパー「Windows におけるメモリ管理の進歩」の機能強化について説明します。 
 
Windows Server 2008 では、物理的に連続したメモリの割り当てが大幅に強化されています。 連続したメモリの割り当て要求は、通常はワーキング セットのトリミングや I/O 操作を行わずに、メモリ マネージャがページを動的に置き換えるため、成功する可能性が高くなります。 さらに、カーネル スタックやファイル システム メタデータ ページなど、より多くの種類のページが置き換え候補になりました。 したがって、より連続したメモリは、常に利用可能です。 さらに、このような割り当てを取得するためのコストが大幅に削減されます。
ホワイト ペーパー「Windows のメモリ管理の進歩」を参照するには、次の Microsoft Web サイトを参照してください。 詳細については、次のマイクロソフト Web サイトを参照してください。 
2001745 ワーキング セットのトリミングは、Windows 2003 で SQL、Exchange およびオペレーティング システムのパフォーマンスに悪影響を与える可能性があります。
注: Windows Server 2008 ベースのコンピューターでは、SQL Server Service Pack 2 (SP2) またはそれ以降の SQL Server Service Pack をインストールする必要があります。

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。