SQL Server で統計情報専用のデータベースを作成するのには、必要なデータベース メタデータのスクリプトを生成する方法

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:914288
概要
Microsoft SQL Server のクエリ オプティマイザーは、最適なクエリ プランを決定するのに、次の種類の情報を使用します。
  • データベースのメタデータ
  • ハードウェア環境
  • データベースのセッションの状態
通常、テスト システムでは、クエリ オプティマイザーの動作を再現する場合は、これらのすべての同じ種類の情報をシミュレートする必要があります。

Microsoft カスタマー サポート サービスが要求すると、データベース メタデータのスクリプトを生成します。Microsoft カスタマー サポート サービスは、このスクリプトは、データベースのメタデータを使用して、オプティマイザーの問題を調査します。この資料は、統計のスクリプトを生成する手順について説明します。また、クエリ オプティマイザーで、情報の使用方法についても説明します。
詳細
スクリプトを生成する手順を実行する前に、SQL Server 2005 を使用する場合は、SQL Server Management Studio は、SQL Server 2005 のサービス パック 2 のバージョンまたはそれ以降のバージョンでことを確認します。SQL Server 2005 の以前のバージョンの SQL Server Management Studio を使用する場合は、スクリプト ウィザードはすべての必要なオプションをこの資料の手順を正常に動作がありません。

データベース全体のスクリプト

データベースの統計情報のみのクローンを作成する場合があります容易かつ信頼性の高い、個々 のオブジェクトのスクリプトではなく、データベース全体のスクリプトを作成します。データベース全体のスクリプトを作成するときに、次の利点が表示されます。
  • 問題を再現するために必要な依存オブジェクトが不足している問題を回避します。
  • 必要なオブジェクトを選択する手順を大幅に削減を要求します。
注: <b>データベースのスクリプトを生成する、何千ものオブジェクトが、データベースのメタデータに含まれている場合、スクリプト処理プロセスは大量の CPU リソースを消費します。ピーク時以外の時間帯にスクリプトを生成することをお勧めします。または、個々 のオブジェクトのスクリプトを生成する 2 番目のオプションを使用できます。

クエリによって参照されている各データベースのスクリプトを以下の手順を実行します。
  1. SQL Server Management Studio を開きます。
  2. オブジェクト エクスプローラーでデータベース] を展開し、スクリプトにすると、データベースを検索します。
  3. データベースを右クリックし、タスク] をポイント [スクリプト生成] をクリックします。
  4. スクリプト ウィザードでは、正しいデータベースが選択されていることを確認します。[スクリプトはすべて、選択したデータベースのオブジェクト] チェック ボックスをオンにし、[次へ] をクリックします。
  5. [スクリプト オプションの選択]ダイアログ ボックスで、次の設定を既定値からを次の表に記載されている値に変更します。
    スクリプトのオプション値を選択するには
    Ansi の埋め込み場合は true。
    エラーでスクリプトを続行します。場合は true。
    従属オブジェクトに対してスクリプトを生成します。場合は true。
    システム制約名を含めます。場合は true。
    スクリプトの照合順序場合は true。
    データベース スクリプトを作成します。場合は true。
    スクリプト ログイン場合は true。
    スクリプト オブジェクト レベルのアクセス許可場合は true。
    スクリプトの統計情報統計とヒストグラムのスクリプトを作成
    インデックス スクリプト場合は true。
    [トリガー スクリプト]場合は true。
    注: <b>スクリプト ログインオプションと、スクリプト オブジェクト レベルのアクセス許可のオプションがあります必要dbo以外のログインによって所有されているオブジェクトがスキーマに含まれている場合を除き。
  6. [次へ] をクリックします。
  7. スクリプトをファイルにオプションをクリックし、[ファイル名を入力し、します。
  8. [完了] をクリックします。

個々 のオブジェクトのスクリプト

スクリプト個別オブジェクトのみ、完全なデータベースのスクリプトの代わりに、特定のクエリによって参照されることがあります。ただしに SCHEMABINDING 句を使用してすべてのデータベース オブジェクトが作成された、いない場合は、 sys.dependsシステム ・ テーブルの依存関係情報が常に正確でなくなります。この不正確のいずれか、次の問題があります。
  • スクリプトの処理は、依存オブジェクトをスクリプトします。
  • スクリプトの処理が不適切な順序でオブジェクトのスクリプト可能性があります。スクリプトを正常に実行するには、生成されたスクリプトを手動で編集する必要があります。
このため、データベースが多数のオブジェクトとスクリプトはそれが非常に長くしない限り、個々 のオブジェクトをスクリプトすることはお勧めしません。個々 のオブジェクトのスクリプトを使用する必要がある場合は、以下の手順を実行します。
  1. SQL Server Management Studio、データベース] を展開し、スクリプトにすると、データベースを検索し。
  2. データベースを右クリックし、データベースのスクリプトとして保存] をポイントし、 [作成] をポイントおよび、[ファイル] をクリックします。
  3. ファイル名を入力し、[保存] をクリックします。

    コア データベース コンテナーがスクリプト化されます。このコンテナーには、ファイル、ファイル グループ、データベース、およびプロパティが含まれています。
  4. データベースを右クリックし、タスク] をポイント [スクリプト生成] をクリックします。
  5. 正しいデータベースが選択されているかどうかを確認し、[次へ] をクリックします。
  6. [スクリプト オプションの選択]ダイアログ ボックスで、次の設定を既定値からを次の表に記載されている値に変更します。
    スクリプトのオプション値を選択するには
    Ansi の埋め込み場合は true。
    エラーでスクリプトを続行します。場合は true。
    システム制約名を含めます。場合は true。
    従属オブジェクトに対してスクリプトを生成します。場合は true。
    スクリプトの照合順序場合は true。
    スクリプト ログイン場合は true。
    スクリプト オブジェクト レベルのアクセス許可場合は true。
    スクリプトの統計情報統計とヒストグラムのスクリプトを作成
    スクリプトを使用するデータベース場合は true。
    インデックス スクリプト場合は true。
    [トリガー スクリプト]場合は true。
    注: <b>スクリプト ログインオプションと、スクリプト オブジェクト レベルのアクセス許可のオプションがあります必要dbo以外のログインによって所有されているオブジェクトがスキーマに含まれている場合を除き。
  7. オブジェクトの種類の選択] ダイアログ ボックスで、[問題のあるクエリを参照するすべてのデータベース オブジェクトの種類を選択します。

    たとえば、クエリはテーブルだけを参照、選択 テーブル。クエリがビューを参照する場合に、ビューとテーブルを選択します。問題のあるクエリをユーザー定義関数を使用する場合は関数を選択します。
  8. クエリによって参照されるすべてのオブジェクトの種類を選択したら、次へをクリックします。
  9. 手順 7 で選択した各データベース オブジェクトの種類のダイアログ ボックスが表示されます。各ダイアログ ボックスで、特定のテーブル、ビュー、関数、または、他のデータベース オブジェクトを選択、し、[次へ] をクリックします.
  10. スクリプトをファイルに、[オプション] をクリックし、手順 3 で入力した同じファイル名を指定する.
  11. スクリプトを開始する終了をクリックします。
スクリプトが完了したら、スクリプト ファイルをマイクロソフトのサポート エンジニアに送信します。マイクロソフトのサポート エンジニアは、次の情報を要求しても。
  • プロセッサと物理メモリの量が存在するの数など、ハードウェアの構成
  • クエリを実行したときに、アクティブなオプションの設定
注: <b>既に提供された情報の SQLDiag レポートまたは SQL プロファイラーのトレースを送信することによって。使っています別の方法この情報を提供します。

情報の使用方法

次の表は、クエリ オプティマイザーでクエリ プランを選択するにはこの情報の使用方法の説明に役立ちます。

メタデータ

制約クエリ オプティマイザーは、クエリの基になるスキーマの不一致を検出するのに制約を頻繁に使用します。たとえば、次のクエリは、"WHERE 列 = 5" 句と"チェック (col< 5)"="" check="" constraint="" exists,="" the="" query="" optimizer="" knows="" that="" no="" rows="" will="">

Null 値の許容に関する控除の類似する種類をクエリ オプティマイザーになります。たとえば、"NULL 列が設定されている"句が true または false によっては、列の null 値の許容と外部結合の外部テーブルからの列がかどうかを知られています。FOREIGN KEY 制約の存在は、基数と適切な結合順序を決定するのに便利です。クエリ オプティマイザーは結合を排除または述語を簡略化するために、制約の情報を使用できます。これらの変更は、ベース テーブルにアクセスする必要を削除できます。
統計情報統計情報には、密度と、インデックスと統計情報キーの先頭列の分布を示すヒストグラムが含まれます。述語の性質、に応じて、クエリ オプティマイザーは述語の基数の推定にも密度、ヒストグラム、またはその両方に使用できます。最新の統計情報は、正確な基数の見積もりのために必要です。基数予想がオペレーターのコストを見積もるには、入力として使用されます。そのため、最適なクエリ プランを取得する良い基数の見積もりが必要です。
テーブルのサイズ (行とページの数)クエリ オプティマイザーは、指定された述語が true または false である確率を計算するには、ヒストグラムと密度を使用します。最終的な基数の見積もりは、確率に子演算子によって返される行の数を掛けて計算されます。テーブルまたはインデックスのページ数は、IO コスト推定要因です。テーブルのサイズが、スキャンのコストの計算に使用され、インデックスのシーク中にアクセスされるページの数を計算するときに便利です。
データベース ・ オプションいくつかのデータベース オプションは、最適化に影響ことができます。AUTO_CREATE_STATISTICSおよびAUTO_UPDATE_STATISTICSオプションは、クエリ オプティマイザーは、新しい統計情報、または更新の統計情報が最新のものを作成するかどうかに影響します。パラメーター化レベルは、入力クエリがクエリ オプティマイザーに渡される前に、入力クエリはパラメーター化する方法に影響します。パラメーター化は、基数の推定に影響を与えるし、するインデックス付きのビューおよびその他の最適化と一致するようにすることもできます。DATE_CORRELATION_OPTIMIZATION設定により、オプティマイザーの列間の相関関係を検索します。この設定は、基数およびコストの推定に影響します。

環境

セッションの SET オプションANSI_NULLSの設定かどうかに影響を及ぼしません、"NULL NULL ="true として評価される式。外部結合の基数の推定は、現在の設定によって変更できます。また、あいまいな式も変更可能性があります。など、"col NULL ="式の評価結果、設定によって異なる。ただし、"col NULL は」式は常に同じ方法を評価します。
ハードウェア リソース並べ替えやハッシュ演算子のコストが SQL Server で使用できるメモリの相対的な量によって異なります。たとえば、データのサイズが大きい場合、キャッシュよりも、クエリ オプティマイザーは、知っている、データする必要があります常にスプールされるディスクにします。ただし、データのサイズが、キャッシュよりはるかに小さい場合、操作はメモリ内で実行する可能性があります。SQL Server は"MAXDOP"ヒントまたは並列処理の最大程度構成オプションを使用して並列処理が無効になっていない場合は、サーバーが 1 つ以上のプロセッサと種類もの最適化も考慮されます。
データベースのクローンを作成します。

警告: この記事は自動翻訳されています

プロパティ

文書番号:914288 - 最終更新日: 01/27/2015 21:01:00 - リビジョン: 8.0

Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems

  • kbexpertiseinter kbexpertiseadvanced kbsql2005engine kbhowto kbinfo kbmt KB914288 KbMtja
フィードバック