ユーザーガイド > パフォーマンスチューニング > コストベースの最適化のためのカーディナリティ統計情報の作成 > ビューのカーディナリティ統計情報の作成
 
ビューのカーディナリティ統計情報の作成
キャッシングにビューを使用する場合は、そのビューのカーディナリティ統計情報を収集できます。
注意: カーディナリティ統計情報収集プロファイルを定義する前に、キャッシュを設定する必要があります。詳細については、「キャッシングの設定」を参照してください。
TDV並列オプションの場合は、ビューの数値単純キーである列の統計情報を収集する必要があります。この列は、実行プランによって主キー列として識別された列、または[Indexes(インデックス)]タブで定義した主キーのいずれかである必要があります。
ビューのカーディナリティ統計情報を収集するには
1.リソースツリーから、カーディナリティ統計情報を収集するビューを開きます。
2.[Caching(キャッシュ作成)]タブを選択します。
3.[Create Cache(キャッシュの作成)]をクリックします。
キャッシュの作成の詳細については、「ファイルターゲットへのキャッシュ」を参照してください。
4.Studioから求められた場合は、データソースのカーディナリティ統計情報を定義します。詳細については、「データソースでのカーディナリティ統計情報の作成」を参照してください。
5.ビューの[Cardinality Statistics(カーディナリティ統計情報)]タブを選択します。
6.[Create Statistics(統計情報の作成)]をクリックします。
7.[Enable(有効にする)]をオンにして、収集されたテーブル統計情報を使用して実行プランを最適化できるようにします。
統計情報の収集を構成する場合、[Enable(有効にする)]チェックボックスをオンにする必要はありませんが、統計情報を使用する場合は、オプティマイザーのそのチェックボックスをオンにする必要があります。統計情報の収集と既存の統計情報の使用を無効にするには、[Enable(有効にする)]チェックボックスをオフにして保存します。
8.オプションで、カーディナリティの上書き設定を定義します。
Minimum Cardinality(最小カーディナリティ) — このテーブルに対するSQL SELECTから返されると予想される行の最小数。ゼロ(0)は有効な数値です。
Maximum Cardinality(最大カーディナリティ) — リソースが返すことができる行の最大数。
Expected Cardinality(予想されるカーディナリティ) — このテーブルから返される一意の行の一般的な数。
9.カーディナリティ統計情報を収集するためのスケジュールを指定します。[On Cache Refresh(キャッシュの更新時)]または[Manual(手動)]を指定できます。[Gather Now(今すぐ収集)]ボタンはいつでも使用できます。
10.オプション。[Statistics Gathering Timeout(統計情報の収集タイムアウト)]値を設定します。
テーブル統計情報の収集タイムアウトが「-1」に設定されている場合は、データソース統計情報の収集タイムアウトが使用されます。値0 (デフォルト)は、時間制限がないことを示します。
統計情報処理がすでに完全テーブルスキャンからデータを返している場合、タイムアウト設定によって処理が即座に停止されることはありません。代わりに、すでに返されたデータのサブセットに基づく統計的推定が試みられます。
11.テーブル統計情報の収集設定を指定します。
None(なし) — テーブルの統計情報を収集しません。
Use datasource settings(データソース設定を使用) — このデータソースに指定された定義に従って統計情報を収集します。
Gather table boundary statistics(テーブル境界の統計情報を収集) — 指定された各テーブルに対してSELECT COUNT (*)を実行してその行をカウントします。
Specify gathering for specific columns(特定の列の収集を指定) — 統計情報の収集を列単位で制御します。
12.必要に応じて、[Specify gathering for specific columns(特定の列の収集を指定)]オプションを選択して列の収集ルールを指定し、MIN、MAX、およびdistinctの値を操作します。
a. [Gathering Rule(収集ルール)]列で、下の表の最初の2つの統計情報収集オプションのいずれかをダブルクリックして選択します。
収集ルールオプション
次の場合に選択
[Gather all statistics(すべての統計情報を収集)]
他のすべての統計情報と数値データタイプの完全テーブルスキャンを収集してヒストグラムを作成します。または、文字列データタイプの完全な文字列インデックスを作成します。
意味のない統計データを生成するBLOB、CLOB、およびその他のデータタイプは、統計評価用に構成できません。
[Gather boundary statistics(境界の統計情報を収集)]
テーブル境界の統計情報を収集し、最小値と最大値を収集し、数値データタイプの個別の値をカウントします。文字列データタイプの場合は、1万行未満のテーブルの個別の値の数を計算します。
列境界の統計情報を収集するコストを減らすため、1つ以上の仮定を適用します。
[Do not gather statistics(統計情報を収集しない)]
列の統計情報の収集を停止します(デフォルト)。
b. 次の1つ以上のフィールドを使用して上書きし、データベースでの統計情報の処理を回避します。
この方法は、列境界の統計情報の収集を回避し、クエリーの実行時に指定した値をTDVに使用させる場合に役立ちます。
TDVは、統計情報を収集するときに、ソースからすべてのデータを取得し、そのデータに基づいてヒストグラムと文字列インデックスを作成します。この操作は、行と列の数、ネットワーク帯域幅などによっては、高いコストがかかる可能性があります。統計情報を収集する時間が限られている場合は、値を上書きすると便利です。
これらの列の値は、選択を評価するための一様分布を実行時に作成するために使用されます。列に値が指定されている場合、その列の統計情報は収集されません。
[Minimum Value(最小値)] — 列の最小値を上書きするオプション
[Maximum Value(最大値)] — 列の最大値を上書きするオプション
[Distinct Count(個別の数)] — 列の個別の値の数を上書きするオプション
[Num of Buckets(バケット数)] — 統計情報の粒度を増減するオプション
13.選択内容を保存します。