次の方法で共有


テスト サーバーの使用に関する注意点

更新 : 2005 年 12 月 5 日

実稼働サーバー上のデータベースのチューニングにテスト サーバーを使用することは、データベース エンジン チューニング アドバイザの大きな利点です。この機能を使用して、実際のデータを実稼働サーバーからテスト サーバーにコピーすることなく、チューニングにかかるオーバーヘッドをテスト サーバーに移行できます。

ms189551.note(ja-jp,SQL.90).gifメモ :
データベース エンジン チューニング アドバイザのグラフィカル ユーザー インターフェイス (GUI) では、テスト サーバーのチューニング機能はサポートされません。

この機能を正しく使用するために、以下のセクションの考慮事項を確認してください。

テスト サーバー/実稼働サーバー環境の設定

  • 実稼働サーバー上のデータベースをチューニングするためにテスト サーバーを使用するユーザーは、両方のサーバーに存在している必要があります。存在しない場合、このシナリオは失敗します。
  • テスト サーバーと実稼働サーバーのシナリオでは、拡張ストアド プロシージャ xp_msver を有効にする必要があります。データベース エンジン チューニング アドバイザでは、この拡張ストアド プロシージャを使用して、実稼働サーバーのプロセッサ数と使用可能なメモリをフェッチし、テスト サーバーでのチューニングに使用します。xp_msver が有効ではない場合、データベース エンジン チューニング アドバイザを実行しているコンピュータのハードウェア特性が想定値として使用されます。データベース エンジン チューニング アドバイザを実行しているコンピュータのハードウェア特性を推定できない場合は、1 つのプロセッサと 1,024 MB のメモリがあると仮定します。Microsoft SQL Server 2005 をインストールした時点で、この拡張ストアド プロシージャは既定で有効になります。詳細については、「セキュリティ構成」および「xp_msver (Transact-SQL)」を参照してください。
  • データベース エンジン チューニング アドバイザでは、テスト サーバーと実稼働サーバーの SQL Server のエディションが同じである必要があります。2 つの異なるエディションがある場合は、テスト サーバーのエディションが優先されます。たとえば、テスト サーバーで SQL Server Standard Edition が実行されている場合は、実稼働サーバーで実行されているのが SQL Server Enterprise Edition であっても、データベース エンジン チューニング アドバイザの推奨設定にはインデックス付きビュー、パーティション分割、およびオンライン操作は含まれません。SQL Server の各エディションでサポートされているチューニング オプションの詳細については、「サポートされていないチューニング オプション」を参照してください。

テスト サーバー/実稼働サーバーの動作について

  • データベース エンジン チューニング アドバイザでは、推奨設定の作成時に実稼働サーバーとテスト サーバー間のハードウェア上の違いが考慮されます。推奨設定は、実稼働サーバーだけでチューニングを行った場合と同じになります。
  • データベース エンジン チューニング アドバイザでは、チューニングに必要な統計情報を作成したり、メタデータを収集するために、実稼働サーバーにある程度負荷をかける場合があります。
  • データベース エンジン チューニング アドバイザでは、実稼働サーバーからテスト サーバーに実際のデータがコピーされることはありません。データベースのメタデータと必要な統計情報がコピーされるだけです。
  • すべてのセッション情報が、実稼働サーバー上の msdb に格納されます。そのため、使用可能なテスト サーバーはすべてチューニングに利用でき、すべてのセッションについての情報を 1 か所 (実稼働サーバー) で使用できます。

シェル データベースに関連する問題

  • チューニング後は、チューニング処理中にデータベース エンジン チューニング アドバイザによってテスト サーバー上に作成されたすべてのメタデータが削除されます。シェル データベースも削除されます。同じ実稼働サーバーとテスト サーバーを使って一連のチューニング セッションを実行する場合は、このシェル データベースを保持しておいて時間を節約することができます。XML 入力ファイルでは、RetainShellDB サブ要素を、TuningOptions 親要素の下のその他のサブ要素と共に指定します。これらのオプションを使用することで、データベース エンジン チューニング アドバイザでシェル データベースが保持されるようになります。詳細については、「XML 入力ファイル リファレンス (DTA)」を参照してください。
  • テスト サーバー/実稼働サーバーのチューニング セッションが成功した後、RetainShellDB サブ要素を指定していないにもかかわらず、シェル データベースがテスト サーバーに残る場合があります。こうした不要なシェル データベースはその後のチューニング セッションに干渉する可能性があるため、別のテスト サーバー/実稼働サーバーのチューニング セッションを実行する前に削除する必要があります。また、チューニング セッションが予期せず終了した場合は、テスト サーバー上のシェル データベースと、それらのデータベース内のオブジェクトが、テスト サーバー上に残る可能性があります。これらのデータベースとオブジェクトも、新しいテスト サーバー/実稼働サーバーのチューニング セッションを開始する前に削除する必要があります。

チューニング処理に関連する問題

  • ユーザーは、実稼働サーバーとテスト サーバー間の違いに起因するチューニング エラーと、実稼働サーバーからテスト サーバーへのメタデータのコピーに起因するエラーについて、チューニング ログを確認する必要があります。たとえば、ユーザーのログイン情報がテスト サーバーに存在しない場合があります。ユーザーのログインがテスト サーバーに存在しない場合、ワークロード内のイベントのうち、そのユーザー ログインによって発生するイベントをチューニングできない場合があります。チューニング ログを表示するには、データベース エンジン チューニング アドバイザの GUI を使用します。詳細については、「チューニング出力を表示する方法」を参照してください。
  • データベース エンジン チューニング アドバイザによってテスト サーバー上に作成されるシェル データベースにオブジェクトが見つからないために、データベース エンジン チューニング アドバイザで多数のイベントをチューニングできない場合は、チューニング ログを確認する必要があります。チューニングできないイベントは、ログに記録されます。テスト サーバー上のデータベースを正常にチューニングするには、シェル データベースに見つからないオブジェクトを作成してから新しいチューニング セッションを開始する必要があります (「dta ユーティリティを使用してデータベースをチューニングする方法」を参照してください)。
  • 同一名のデータベースが既にテスト サーバー上に存在する場合は、データベース エンジン チューニング アドバイザではメタデータがコピーされずにチューニングが続行され、必要に応じて統計情報が収集されます。これは、データベース エンジン チューニング アドバイザを起動する前に、ユーザーが既にデータベースをテスト サーバー上に作成し、適切なメタデータをコピーし終わっている場合に便利です。
  • DATE_CORRELATION_OPTIMIZATION オプションが実稼働サーバー上のデータベースに対して有効になっていると、メタデータと、このオプションに関連付けられているデータの一部が、テスト サーバーのチューニング中にスクリプト化されません。テスト サーバーと実稼働サーバーのシナリオでチューニングを実行する場合、次の問題が当てはまる場合があります。
    • DATE_CORRELATION_OPTIMIZATION オプションを使用するクエリの場合、サーバー間でクエリ プランが異なることがあります。
    • インデックス付きビューの推奨設定スクリプトで DATE_CORRELATION_OPTIMIZATION オプションを設定している場合、データベース エンジン チューニング アドバイザからそのビューを削除するように提示されることがあります。
      このため、相関関係の統計情報を保持するインデックス付きビューについては、データベース エンジン チューニング アドバイザによって作成される推奨設定を無視してもかまいません。データベース エンジン チューニング アドバイザでは、このようなインデックス付きビューのコストのみが認識され、利点が認識されないためです。データベース エンジン チューニング アドバイザでは、DATE_CORRELATION_OPTIMIZATION が有効であれば有益だった可能性がある datetime 列のクラスタ化インデックスなど、特定のインデックスの選択が推奨されない場合があります。
      特定のビューが相関関係の統計情報に基づいているかどうかを判断するには、sys.views カタログ ビューの is_date_correlation_view 列を選択します。
      このオプションの詳細については、「相関した datetime 列にアクセスするクエリの最適化」を参照してください。

参照

概念

実稼動サーバーのチューニング負荷の軽減

その他の技術情報

ALTER DATABASE (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2005 年 12 月 5 日

新しい内容 :
  • テスト サーバーと実稼働サーバーで異なるエディションの SQL Server を実行している場合の影響についての説明を「テスト サーバー/実稼働サーバー環境の設定」のセクションに追加しました。
  • チューニング後に不要なシェル データベースが意図せずテスト サーバーに残った場合に、それ以降のチューニング セッションに対する影響についての説明を「シェル データベースに関連する問題」のセクションに追加しました。