ユーザーガイド > パフォーマンスチューニング > コストベースの最適化のためのカーディナリティ統計情報の作成 > データソースでのカーディナリティ統計情報の作成
 
データソースでのカーディナリティ統計情報の作成
統計情報の収集は、親データソースで有効にする必要があります。統計情報は、任意のデータソースで使用できる[Cardinality Statistics(カーディナリティ統計情報)]タブで作成できます。
注意: 統計情報の収集を有効にするには、データソースのサインインとパスワードを保存する必要があります。
データソースの統計情報を収集するには
1.リソースツリーから、データソースを開きます。
2.[Cardinality Statistics(カーディナリティ統計情報)]タブを選択します。
3.[Create Statistics(統計情報の作成)]をクリックします。
4.[Enable(有効にする)]をオンにして、収集されたテーブル統計情報を使用して実行プランを最適化できるようにします。
統計情報の収集を構成する場合、[Enable(有効にする)]チェックボックスをオンにする必要はありませんが、統計情報を使用する場合は、オプティマイザーのそのチェックボックスをオンにする必要があります。統計情報の収集と既存の統計情報の使用を無効にするには、[Enable(有効にする)]チェックボックスをオフにして保存します。
5.[Mode(モード)]で、次のいずれかを選択します。
[Do not gather statistics(統計情報を収集しない)] — すべてのデータソースとテーブルのデフォルト設定。
[Gather table boundary statistics(テーブル境界の統計情報を収集)] — テーブルの行数をカウントし、指定された各テーブルに対してSELECT COUNT (*)を実行します。
[Gather column boundary statistics(列境界統計情報を収集)] — テーブル境界の統計情報を取得し、最小値と最大値を収集し、数値データタイプの個別の値をカウントします。文字列データタイプの場合は、1万行未満のテーブルの個別の値の数を計算します。1つ以上の仮定を適用すると、列境界の統計情報を収集するコストが減少します。
Gather all statistics(すべての統計情報を収集) — 上記のすべての統計情報と数値データタイプの完全テーブルスキャンを収集してヒストグラムを作成します。文字列データタイプの場合、文字列インデックスも作成します。
6.必要に応じて、スレッド数を設定します。
スレッド数は、データベースとTDVで許可される優先度の低いクエリー実行スレッドの数を指定します。
注意: 一部のデータベースでは、多数のスレッドでテーブルを同時にスキャンすることは許容されません。TDVにはスレッド容量の制限もあり、メモリーのしきい値に近づくとディスクページングが発生する可能性があります。[Administration(管理)] > [Configuration(構成)]を選択し、そのウィンドウで[Server(サーバー)] > [SQL Engine(SQLエンジン)] > [Optimizations(最適化)]に移動し、[Max Number of Statistics Gathering Threads In The System(システムの統計情報収集スレッドの最大数)]を設定することで、スレッドの最大数を指定できます(サーバーを再起動する必要はありません)。
7.統計情報の収集スケジュールを設定します。
[Manual(手動)] — [Gather Now(今すぐ収集)]を使用して、統計情報をすぐに収集します。キャッシュがキャッシュポリシーによって制御されている場合は、定期的またはプログラムによる更新を使用することをお勧めします。
[Exactly Once(1回だけ)] — 将来の実行日時を設定する必要があります。
[Periodic(定期的)] — 統計情報の収集は、毎晩のピーク外の時間など、一定の間隔で行われます。
統計情報の収集の頻度は、データの変動性にも依存します。決して変更されないテーブルもあれば、頻繁に変更されるテーブルもあります。カーディナリティとテーブル境界の変更の予想頻度に基づいて統計情報を収集します。
データソースの統計情報の収集は、大量のリソースを使用する可能性があるため、ピーク外の時間に行うのが最適です。並列処理をサポートするデータソースには、複数のスレッドを使用できます。
8.[Time-out in minutes(タイムアウト(分))]フィールドで、リソースからデータを収集するために許容される分数を指定します。
値0またはnull (デフォルト)は、時間制限がないことを示します。
統計情報処理がすでにデータを返し始めた後にタイムアウトが過ぎた場合は、すでに返されたデータのサブセットに基づく統計的推定が試みられます。
9.選択内容を保存します。
10.ビューのカーディナリティ統計情報の作成」の手順に従って、目的のテーブルまたはビューのカーディナリティ統計情報収集オプションを定義します。
TDVでは、統計を計算するために特定のデータソースに対して実行できるNTILE分析関数がサポートされます。TDVは、TDVサーバー内のすべてのデータを取得してヒストグラムを計算する代わりに、この関数を使用してヒストグラムを生成し、データソース内の特定の列の値の分布を取得します。
デフォルトでは、NTILEベースの統計情報の収集は無効になっています。[Disable NTILE-based Statistics Collection(NTILEベースの統計情報の収集を無効にする)]プロパティをFalseに設定することで有効にできます。このオプションには、[Server(サーバー)] > [Configuration(構成)] > [Debugging(デバッグ)] > [Statistics(統計情報)]からアクセスできます。
この分析関数の構文と使用法については、『Reference Guide(リファレンスガイド)』の「NTILE」を参照してください。