64 ビット バージョンの SQL Server のバッファー プール メモリのページングを削減する方法

文書翻訳 文書翻訳
文書番号: 918483 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

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

現象

64 ビット エディションの SQL Server は、さまざまな問題が発生します。たとえば、次のような問題が発生する場合があります。
  • SQL Server のパフォーマンスが突然低下します。
  • SQL Server を実行しているコンピューターでは、短時間応答を停止します。
  • SQL Server に接続するアプリケーションのタイムアウトが発生します。
  • 簡単なものでもコマンドを実行するか、そのシステム上でアプリケーションを使用すると問題が発生します。
SQL Server 2005 Service Pack 2 (SP2) またはそれ以降のバージョンをインストールした場合、次のエラー メッセージのいずれかが記録されます、SQL Server のエラー ログにこれらの問題が発生した場合。
エラー メッセージ 1
日付時刻 spid1s A の sql server プロセス メモリの大部分をページ アウトされたが。これはパフォーマンスが低下可能性があります。期間: 0 秒です。ワーキング セットの (KB): 1086400、(KB) のコミット: 2160928、メモリの使用率: 50%。
エラー メッセージ 2
日付時刻 spid1s A の sql server プロセス メモリの大部分をページ アウトされたが。これはパフォーマンスが低下可能性があります。時間: 315 秒。ワーキング セットの (KB): 410156 を (KB) のコミット: 2201296、メモリの使用率: 18%。
エラー メッセージ 3
日付時刻 spid1s A の sql server プロセス メモリの大部分をページ アウトされたが。これはパフォーマンスが低下可能性があります。期間: 646 秒。ワーキング セットの (KB): 901904 を (KB) のコミット: 2215752、メモリの使用率: 40%。

Microsoft SQL Server のサポート チームは、追加のエラー メッセージや警告は、SQL Server エラー ログまたは Windows イベント ログに記録されるも観察します。これらのメッセージには、次のようになります。
2009-05-05 15:43:56.01 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.

2009-05-05 12:54:52.18 Server      * *******************************************************************************
2009-05-05 12:54:52.18 Server      * BEGIN STACK DUMP:
2009-05-05 12:54:52.18 Server      *   05/05/08 12:54:52 spid 0
2009-05-05 12:54:52.18 Server      * Non-yielding Resource Monitor
2009-05-05 12:54:52.18 Server      * *******************************************************************************

2009-06-10 09:13:53.44 Server      * *******************************************************************************
2009-06-10 09:13:53.44 Server      * BEGIN STACK DUMP:
2009-06-10 09:13:53.44 Server      *   06/10/09 09:13:53 spid 0
2009-06-10 09:13:53.44 Server      * Non-yielding IOCP Listener
2009-06-10 09:13:53.44 Server      * *******************************************************************************

2009-06-10 09:13:55.85 spid2s      LazyWriter: warning, no free buffers found.

2009-07-15 13:27:45.35 spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) is marked for unload due to memory pressure.
2009-07-15 13:27:45.35 spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) unloaded.

2009-07-15 13:37:51.42 Logon       Error: 17189, Severity: 16, State: 1.
2009-07-15 13:37:51.42 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:	Error
Event Source:	SQLBrowser
Event ID:	8
Description: The SQLBrowser service was unable to process a client request. 
これらの追加エラーメッセージあるいは警告が、「sql サーバープロセス メモリの重要な部分がページ アウトされています」というエラー メッセージと共に表示されます。いくつかのインスタンスでこれらの追加のエラー メッセージまたは警告が表示されませんと、エラー メッセージ。

これらのエラー メッセージや警告が表示された場合、唯一の原因としてではなく、考えうる原因の一つとしてこの資料で説明している SQL Server のワーキングセットのページングについて考慮してください。これらのエラー メッセージや警告はさまざまなその他の条件または原因のため記録でした。

原因

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

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

この問題が発生した場合は、システム上の他のアプリケーションのワーキング セットは、同時にページアウトされてもことがあります。
詳細については、次のマイクロソフト Web サイトを参照してください。
http://blogs.msdn.com/psssql/archive/2007/05/31/the-sql-server-working-set-message.aspx
さらに、既知の問題は、SQL Server のインスタンスのこのエラー メッセージが表示可能性がありますに存在します。エラー メッセージは、SQL Server の起動時に、SQL Server のエラー ログに記録されます。エラー メッセージは、偽の警告があります。そのため、その作業セットのトリムが実際に発生したことが示されません。詳細については、次のマイクロソフト web サイトを参照してください。
http://blogs.msdn.com/psssql/archive/2009/05/12/sql-server-reports-working-set-trim-warning-message-during-early-startup-phase.aspx

回避策

この問題を回避しようとする前にこの問題を解決する方法この問題を解決する」セクションで手順に従います。

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

メモ 64 ビット エディションの SQL Server は、SQL Server Enterprise Edition だけを使用できます、メモリ内のページのロックユーザー権利。これは、機能は、[RTM、SP1、SP2、SP3] の SQL Server 2005 および [RTM および SP1] の SQL Server 2008 に適用されます。SQL Server 2008 SP1 累積的な更新プログラム 2」および「SQL Server 2005 SP3 累積的な更新 4 をメモリ内のページのロックユーザー権利を使用するには、標準の SQL Server エディションのサポートについて説明します。 64 ビット システムでロックされたページのサポートに関する詳細については、次のマイクロソフト サポート技術資料を参照する次の文書番号をクリックしてください。
970070 SQL サーバー 2008年標準エディション 64 ビット システムで SQL Server 2005 標準エディション 64 ビット システムにロックされているページのサポート
メモリ内のページのロックユーザー権利を割り当てるには、以下の手順を実行します。
  1. [スタート] ボタン、実行をクリックして型 gpedit.msc、し [ OK] をクリックします。

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

起動時に、SQL Server のエラー ログで、次のメッセージが書き込まれていることを確認してください、ユーザー権利が SQL Server のインスタンスによって使用されていることを検証できます。
バッファー プールにロックされたページを使用します。
このメッセージだけに適用されます 64 ビット エディションの SQL サーバーのエラー ログにこのメッセージの詳細について、次のマイクロソフト Web サイトを参照してください。
http://blogs.msdn.com/psssql/archive/2007/10/18/do-i-have-to-assign-the-lock-privilege-for-local-system.aspx
Windows オペレーティング システムが nonbuffer pool memory をページ アウトすると、依然パフォーマンスの問題が発生する場合があります。ただし、「現象」に記載されているエラー メッセージは、SQL Server エラー ログにログインしていますいません。この現象は、SQL Server プロセスのワーキング セットが、通常コミットされたメモリーの 50% 以下には達しないために発生します。

詳細

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

この問題のトラブルシューティングについては、以下の手順を実行します。
  1. Windows オペレーティング システム ページ アウト、SQL Server プロセスのワーキング セットに原因となる既知の問題を解決するのには、次のマイクロソフト サポート技術情報の資料に記載されている修正プログラムを適用します。

    注: 修正プログラムは累積的であります。以降のバージョン修正プログラムにはには、その修正プログラムの以前のバージョンが含まれます。
    • マイクロソフトは、64 ビット エディションの SQL Server のワーキング セットをトリミングするには、原因となる問題を発見しました。 詳細については、以下の資料番号をクリックして、マイクロソフト サポート技術情報資料を参照してください。
      905865 ターミナル サービスを使用してログオンまたは Windows Server 2003 を実行しているコンピューターからログオフする、コンソール セッションでのすべてのプロセスのワーキング セットのサイズが縮小します。
    • Windows Server 2003 を実行しているコンピューターは、ファイルのコピー操作などのバッファーを介した I/O を実行するアプリケーションがある場合、ダーティ バッファーがキャッシュするときに高すぎることができます。この現象をトリムするのには、SQL Server のワーキング セットになります。 詳細については、以下の資料番号をクリックして、マイクロソフト サポート技術情報資料を参照してください。
      920739 Windows Server 2003 の s または Windows Server 2003 の S で、約 500 MB を超えるファイルをコピーする場合は、システム全体のパフォーマンスが低下が発生する可能性があります。
    • システムは高度な TCP 機能を使用する場合、SQL Server のワーキング セットをトリミングする可能性があります。 詳細については、以下の資料番号をクリックして、マイクロソフト サポート技術情報資料を参照してください。
      942861 アプリケーションの Windows Server 2003 を実行しているサーバー上の SQL Server に接続するときに、エラー メッセージ:「一般的なネットワーク エラー」、「通信リンク エラー」または「トランスポート レベルのエラー」
    • Windows Server 2003 を実行しているマルチプロセッサ コンピューター上でシステム プロセスが使用可能なシステム メモリの大部分を消費します。 詳細については、以下の資料番号をクリックして、マイクロソフト サポート技術情報資料を参照してください。
      942486 システム プロセスが Windows Server 2003 を実行しているマルチプロセッサ コンピューターで利用可能なシステム メモリの大部分を消費する可能性があります。
  2. デバイス ドライバーを使用する場合、 MmAllocateContiguousMemory 関数の値を設定する場合と、 HighestAcceptableAddress パラメーターは 4 ギガバイト (GB) を Windows オペレーティング システム、64 ビットの SQL Server プロセスのワーキング セットをアウト ページします。この問題を解決するのにはドライバーをアップデート、デバイス ドライバーの製造元問い合わせてください。問題が発生しているドライバーの一覧は、「他社」セクション次のマイクロソフト サポート技術情報の資料を参照してください。
    2121098 推奨のオペレーティング システムの更新プログラムおよびドライバーの SQL Server のインストール
  3. これらの修正プログラムを適用した後も、これらの問題が発生、する場合は、トリムの操作プロセスあたりの数を制限する Windows 修正プログラムを適用します。 詳細について、マイクロソフト サポート技術記事を表示するには、次の資料番号をクリックしてください。
    938486 大量のメモリを要求する、中間モジュールによって発生するメモリ マネージャー トリミング操作のために Windows Server 2003 ベースのコンピューターが応答しなくなります。
    956341 大量のメモリ割り当て要求のため、Windows Server 2003 ベースのコンピューターが応答しなくなった
    デバイス ドライバーがメモリを割り当てるしようとすると、Windows オペレーティング システムが他のアプリケーションのワーキング セットをページします。この Windows 修正プログラム イベントのトレースを使用して、問題の原因となるデバイス ドライバーを検索することができます。ワーキング セット トリミング動作が特定のドライバーに関する詳細については、MSDN の記事を参照してください"連続したメモリを割り当てるドライバーを識別します。."
  4. アプリケーションは、システム キャッシュが多すぎるを使用可能性があり、システム キャッシュの拡大が発生する可能性があります。システム キャッシュの増加に応答して、システム ページ SQL Server プロセスのまたは他のアプリケーションのワーキング セットをアウトします。この問題が発生した場合、アプリケーションで一部のメモリ管理関数を使用できます。これらの関数はファイル I/O 操作は、アプリケーションで使用できる、システム キャッシュ領域を制御します。たとえば、使用できます、 SetSystemFileCacheSize 関数とは GetSystemFileCacheSize ファイル I/O 操作に使用できる、システム キャッシュ領域を制御する関数です。

    Memory パフォーマンス オブジェクトを使用するには、システム キャッシュ ワーキング セットが大量のメモリを使用するかを確認するのには、このオブジェクトのさまざまなカウンターの値を表示します。たとえば、キャッシュのバイト数とシステム キャッシュの常駐バイト数のカウンターを表示できます。このトピックの詳細については、次のマイクロソフト Web サイトを参照してください。
    http://blogs.msdn.com/ntdebugging/archive/2007/11/27/too-much-cache.aspx

    http://blogs.msdn.com/ntdebugging/archive/2009/02/06/microsoft-windows-dynamic-cache-service.aspx

    http://support.microsoft.com/default.aspx?scid=kb;EN-US; 976618
    ダウンロードして、「Microsoft Windows 動的キャッシュ サービス」のシステム ・ キャッシュによって消費されるメモリを制御することが展開できます。
  5. SQL Server は SAP R/3 と実行中の場合は、ページングの問題があります。 詳細については、以下の資料番号をクリックして、マイクロソフト サポート技術情報資料を参照してください。
    931308 Windows Server 2003 ベースのコンピューターで、SAP R/3 のプログラムを実行するとハード ディスク ページングの増加が発生する可能性があります。
  6. Windows Server 2008 で SQL Server を実行している場合は、セット トリミングや過度の不要なメモリの消費量を他のオペレーティング システム コンポーネントで作業する可能性がある既知の問題に対する修正プログラムを適用する必要があります。詳細について、マイクロソフト サポート技術記事を表示するには、次の資料番号をクリックしてください。

    971442 Windows Server 2008 または Windows Vista を実行しているサーバーから、ネットワーク経由でファイルをコピーしようとすると、サーバのシステムパフォーマンスが大幅に低下します。

    974609 Windows Server 2008 をランダムに実行しているコンピューターが、大規模なアプリケーションを実行するとを応答を停止します。

    971714 レポートの生成プロセスが Windows Server 2008 ベースのドメイン コント ローラーで、レポートを生成するには、Active Directory の診断テンプレートで Perfmon.exe を実行するとを応答を停止します。
  7. SQL Server Windows 対応 2008 R2 を実行している場合は、ワーキングセットがトリムする原因となる既知の問題に対する修正プログラムを適用する必要があります。詳細については、次のマイクロソフト サポート技術資料を参照する次の資料番号をクリックしてください。
    979149 大規模なアプリケーションを実行すると、Windows 7 または Windows Server 2008 R2 を実行しているコンピューターが応答しなくなります。

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

    2468345 Windows Server 2008 R2 で Storport ドライバーを使用すると、コンピューターの性能が断続的悪化する、または応答が停止します。

64 ビット エディションの SQL Server で使用されているメモリを確認する方法

パフォーマンス モニターを使用して、64 ビット エディションの SQL Server で使用されるメモリのページを表示することができます。これには、次のパフォーマンス カウンターを監視します。
パフォーマンス オブジェクト: メモリ
カウンター: ページ/秒
このカウンターを使用してください、メモリのページを確認する方法の詳細については、マイクロソフト サポート技術資料を参照する次の文書番号をクリックしてください。
889654 Windows Server 2003 または Windows XP の 64 ビット バージョンの適切なページ ファイル サイズを確認する方法
さらに、次のパフォーマンス カウンターを監視することによって、64 ビット エディションの SQL Server でのページングの影響を測定できます。
パフォーマンス オブジェクト: プロセス
プライベート バイトのカウンター:
インスタンス: sqlservr

パフォーマンス オブジェクト: プロセス
ワーキング セットのカウンター。
インスタンス: sqlservr
Private Bytes カウンターが現在コミットされているメモリを測定します。ワーキング セットのカウンターは、プロセスによって現在使用されている物理メモリを測定します。64 ビット エディションの SQL Server も、バッファー プールを割り当てるメモリを公開するために、次のパフォーマンス カウンターを使用します。
パフォーマンス オブジェクト: SQL Server: メモリ マネージャー
カウンター: 合計サーバー Memory(KB)
メモ 64 ビット エディションの SQL Server のインスタンスが名前付きインスタンスを場合は、パフォーマンス オブジェクトの名前はとおりです。
MSSQL $インスタンス名: メモリ マネージャー
ワーキング セットのカウンターの値が小さい場合、サーバー Memory(KB) の合計カウンターの値よりも、少なくともいくつかのメモリ バッファーのプールの一部であるが、ワーキング セット SQL Server からトリムされます。

割り当てた後、メモリ内のページのロックユーザー権利と、SQL Server サービスを再起動して、SQL Server プロセスのバッファー プールがメモリ リソース通知のイベントに応答して、動的に増加またはこれらのイベントへの応答が減少します。ただし、次のパフォーマンス カウンターでメモリ内にロックされているメモリ割り当てのバッファー プールを表示できません。
  • Private Bytes カウンターをパフォーマンス モニターでのワーキング セット カウンター
  • タスク マネージャーの [プロセス] タブでは、メモリ使用量]
これらのページがロックされている、後にそれらの割り当て、バッファー プールを使用しない場合は、これらのパフォーマンス カウンター、SQL Server プロセス内のメモリ割り当てを表します。サーバー Memory(KB) の合計、SQL Server: メモリ マネージャーのパフォーマンス オブジェクトのカウンターは、バッファー プールに割り当てられているメモリを正確に表します。

「メモリ内ページのロック"、64 ビット エディションの SQL Server インスタンス権限ユーザーに割り当てる前に、重要な考慮事項

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

これらの問題のマイクロソフト カスタマー サポート サービス (CSS) を連絡する場合は、CSS エンジニアが要求する、SQL Server サービスのスタートアップ アカウントとして使用されているユーザー アカウントのユーザー権利を失効します。この手順は、CSS エンジニア SQL Server およびシステム上で実行されている他のアプリケーションのさまざまなオプションの必要な構成のために使用できる重要なパフォーマンス データを収集する必要あります。CSS エンジニアがパフォーマンス データを収集した後は、メモリ内のページのロックユーザー、SQL Server サービスのスタートアップ アカウントの権限を割り当てることができます。

メモリ内のページのロックユーザー権利を割り当てる前に、さまざまなアプリケーションや、システムにインストールされているサービスのメモリ要件を決定する、パフォーマンス モニターのログをキャプチャすることを確認します。これらのアプリケーションには、SQL Server も含まれます。メモリ要件を確認するのには、以下のベースライン情報を収集します。
  • 最大サーバー メモリオプションとは最小サーバー メモリのオプションを正しく設定することを確認します。これらのオプションは、SQL Server プロセスのバッファー プールのメモリ要件だけが反映されます。これらのオプションは、SQL Server プロセス内の他のコンポーネントに割り当てられているメモリを含めないでください。これらのコンポーネントは次のとおりです。
    • SQL Server のワーカー スレッド
    • 複数ページ アロケーターは、SQL Server のメモリ マネージャー
    • さまざまな Dll と、SQL Server プロセスが SQL Server プロセスのアドレス空間内のコンポーネント
    • バックアップと復元の操作
  • Dll やコンポーネントには、各種の OLE DB プロバイダー、拡張ストアド プロシージャ、 sp_OACreateストアド プロシージャ、リンク サーバーおよび SQL Server の CLR で使用されるマイクロソフトの COM オブジェクトが含まれます。これらのコンポーネントに割り当てられたメモリを SQL Server プロセスのアドレス空間の nonbuffer プール領域を下回った。理想的には、全体の SQL Server プロセスで使用できるメモリの最大量を確認するのには、バッファー プールからメモリの総量を使用するには、SQL Server プロセスをすることを使用しないコンポーネントに割り当てられているメモリを減算する必要があります。その後、最大サーバー メモリのオプションを設定するのにの残りの部分の値を使用できます。最大サーバー メモリオプションとは最小サーバー メモリのオプションを設定する前に慎重に「手動でメモリ オプションの設定」トピックでは、SQL Server Books Online を参照してください。
  • 他のアプリケーションと Windows オペレーティング システムのコンポーネントのメモリ要件を決定します。アプリケーションには、他の SQL Server コンポーネントには、SQL Server エージェント、レプリケーション エージェントの SQL Server、SQL Server Reporting Services、SQL Server Analysis Services、SQL Server の統合サービス、および SQL Server フル テキスト検索が含まれます。バックアップ操作およびファイルのコピー操作を実行するアプリケーションは、大量のメモリを使用できます。ファイル IO を生成する一括コピーし、スナップショット エージェントなどの操作を検討してください。最小サーバー メモリオプションの最大サーバー メモリオプションの値を決定する場合、これらのすべてのアプリケーションのメモリ要件を考慮する必要があります。Private Bytes カウンターと、ワーキング セットのカウンターのすべてのプロセスのプロセス オブジェクトを使用するには、特定のプロセスのメモリ要件を決定します。
  • 既定では、メモリ内のページのロックユーザー権利は、組み込みのローカル システム アカウントに既に割り当てられています。詳細については、次のマイクロソフト Web サイトを参照してください。
    http://blogs.msdn.com/psssql/archive/2007/10/18/do-i-have-to-assign-the-lock-privilege-for-local-system.aspx
  • 使用する場合、Windows ユーザー アカウント グローバル、ドメイン内のすべての SQL Server プロセス、グループ ポリシーの構成を使用して割り当てられているユーザー権利を確認します。32 ビットの SQL Server プロセスのスタートアップ アカウントとしてこのアカウントを使用可能性があります。ただし、このアカウントには、アドレス ウィンドウ化拡張 (AWE) 機能を有効にするには、メモリ内のページのロックユーザー権利が必要です。詳細については、SQL Server Books online」を SQL Server のメモリの最大量を提供する」トピックを参照してください。
  • 最大サーバー メモリオプション、および複数の SQL Server のインスタンスの最小サーバー メモリのオプションを構成する前に SQL Server の各インスタンスの nonbuffer プールのメモリ要件を考慮してください。次に、SQL Server のインスタンスごとにこれらのオプションを構成します。
理想的には、この負荷がピーク時の基準計画情報を収集します。そのため、各種のアプリケーションやコンポーネント ピーク時の負荷をサポートするためのメモリ要件を決定できます。メモリの要件は、活動およびシステム上で実行されているアプリケーションによっては、別のシステムに 1 つのシステムとは異なります。

SQL Server のリング バッファーからの情報を使用して、ページングが発生すると、メモリの状態を確認する方法

ページングが発生すると、サーバー上のメモリ条件を確認するのには、SQL Server のリング バッファーからの情報を使用できます。次のスクリプトなどのスクリプトを使用するには、この情報を取得します。
SELECT CONVERT (varchar(30), GETDATE(), 121) as runtime,
DATEADD (ms, -1 * (sys.ms_ticks - a.[Record Time]), GETDATE()) AS Notification_time,  
 a.* , sys.ms_ticks AS [Current Time]
 FROM 
 (SELECT x.value('(//Record/ResourceMonitor/Notification)[1]', 'varchar(30)') AS [Notification_type], 
 x.value('(//Record/MemoryRecord/MemoryUtilization)[1]', 'bigint') AS [MemoryUtilization %], 
 x.value('(//Record/MemoryRecord/TotalPhysicalMemory)[1]', 'bigint') AS [TotalPhysicalMemory_KB], 
 x.value('(//Record/MemoryRecord/AvailablePhysicalMemory)[1]', 'bigint') AS [AvailablePhysicalMemory_KB], 
 x.value('(//Record/MemoryRecord/TotalPageFile)[1]', 'bigint') AS [TotalPageFile_KB], 
 x.value('(//Record/MemoryRecord/AvailablePageFile)[1]', 'bigint') AS [AvailablePageFile_KB], 
 x.value('(//Record/MemoryRecord/TotalVirtualAddressSpace)[1]', 'bigint') AS [TotalVirtualAddressSpace_KB], 
 x.value('(//Record/MemoryRecord/AvailableVirtualAddressSpace)[1]', 'bigint') AS [AvailableVirtualAddressSpace_KB], 
 x.value('(//Record/MemoryNode/@id)[1]', 'bigint') AS [Node Id], 
 x.value('(//Record/MemoryNode/ReservedMemory)[1]', 'bigint') AS [SQL_ReservedMemory_KB], 
 x.value('(//Record/MemoryNode/CommittedMemory)[1]', 'bigint') AS [SQL_CommittedMemory_KB], 
 x.value('(//Record/@id)[1]', 'bigint') AS [Record Id], 
 x.value('(//Record/@type)[1]', 'varchar(30)') AS [Type], 
 x.value('(//Record/ResourceMonitor/Indicators)[1]', 'bigint') AS [Indicators], 
 x.value('(//Record/@time)[1]', 'bigint') AS [Record Time]
 FROM (SELECT CAST (record as xml) FROM sys.dm_os_ring_buffers 
 WHERE ring_buffer_type = 'RING_BUFFER_RESOURCE_MONITOR') AS R(x)) a 
CROSS JOIN sys.dm_os_sys_info sys
ORDER BY a.[Record Time] ASC

メモ このクエリは、SQL Server 2005 と SQL Server 2008 の両方に対して有効です。

システムがメモリ不足の状況が発生しているかどうかを理解するのには、動的管理ビュー sys.dm_os_process_memory で提供されている情報を照会できます。詳細については、SQL Server 2008 オンライン ブックの参照には、次の MSDN Web サイトを参照してください。
http://msdn.microsoft.com/en-us/library/bb510747.aspx
SQL Server 2008 R2 ベスト プラクティス アナライザー (SQL Server 2008 R2 BPA) は、作業セットのトリムの SQL Server プロセスにつながる可能性がある状況を検出する複数の規則を説明します。SQL Server 2008 R2 BPA は、SQL Server 2008 と SQL Server 2008 R2 をサポートします。

元に戻す全体を表示する
ルールのソフトウェアルールのタイトル仕訳ルールの説明ルールが評価される対象となる製品のバージョンです。
SQL Server 2008 R2 ベスト プラクティス アナライザー (SQL Server 2008 R2 BPA)
SQL Server のメモリ設定が正しくないです。


BPA ツールを実行して、「データベース エンジンの SQL Server のメモリ設定が正しくない」警告が表示される場合は、SQL Server のこのインスタンスの最大サーバー メモリの設定を確認し"する前に、重要な考慮事項を割り当てる、64 ビット エディションの SQL Server のインスタンスの場合は右、'メモリ内のページのロック' のユーザー」この資料の以下のセクションの推奨事項必要があります。SQL Server 2008
SQL Server 2008 R2


SQL Server 2008 R2 ベスト プラクティス アナライザー (SQL Server 2008 R2 BPA)オペレーティング システム ファイルとドライバー更新の作業セットのトリムが必要BPA ツールを実行して、エラーが発生する場合は、「データベース エンジンがオペレーティング システム ファイルとドライバー更新が必要のワーキング セットのトリミング、」この資料「解決方法」セクションで説明したすべての修正プログラムを確認しそれらを適用する必要があります。
SQL Server 2008
SQL Server 2008 R2

SQL Server 2008 R2 ベスト プラクティス アナライザー (SQL Server 2008 R2 BPA)SQL Server のメモリの大部分をページ アウトされた
BPA ツールを実行して、エラー「データベース エンジン メモリがページアウトされている SQL Server の重要な部分」が発生する場合は、この資料の「解決方法」および「回避策」のセクションを確認し適切なアクション実行する必要があります。
SQL Server 2008
SQL Server 2008 R2


Windows Server 2008 R2 および Windows Server 2008 での機能強化


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

マイクロソフトのホワイト ペーパー"進化のメモリ管理で Windows"からは、強化された機能の説明を次に示します。

Windows Server 2008 で、物理的に連続したメモリの割り当てが大幅に向上します。連続したメモリ割り当て要求は、メモリ マネージャーは、ここで動的に置き換えられるためページ、通常ワーキング セットのトリミングまたは I/O 操作を実行することがなく、成功する可能性が高くなります。さらに、多くのより多くの種類のページ-カーネル スタックなどのファイル システム メタデータ ページなど-交換の候補が表示されます。したがって、複数の連続したメモリは、任意の時点で一般に利用可能です。さらに、このような割り当てを取得するコストが大幅に削減します。
"進化のメモリ管理で Windows"ホワイト ペーパーを表示するには、次のマイクロソフト web サイトを参照してください。
http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/MemMgt.docx
詳細については、次のマイクロソフト web サイトを参照してください。
http://blogs.msdn.com/psssql/archive/2008/03/03/sql-server-working-set-trim-problems-consider.aspx
http://support.microsoft.com/kb/2001745
メモ Windows Server 2008 ベースのコンピューターでは、SQL Server Service Pack 2 (SP2) またはそれ以降の SQL Server サービス パックがインストールする必要があります。

この資料に記載されているサード パーティ製品は、マイクロソフトに関係しない会社によって製造されています。マイクロソフトは、明示的または黙示的に関わらず、これらの製品に関するパフォーマンスや信頼性について保証しません。

プロパティ

文書番号: 918483 - 最終更新日: 2014年6月22日 - リビジョン: 22.0
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
キーワード:?
kbsqlsetup kbsql2005engine kbexpertiseadvanced kbinfo kbmt KB918483 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:918483
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com