COLLECT STATISTICS(最適化ルーチン形式)文は、指定した列セットまたはインデックスに対するヒストグラムを作成し、それらについての統計およびデモグラフィックを更新します。次に、この情報を使用して、インデックスまたは列セットの統計的な概要またはプロファイルを計算します。この計算は、最適化ルーチンがアクセス計画および結合計画を作成するときに、最適化ルーチンに役立つ形式でその特徴を要約するために行ないます。
Teradata VantageのSQLマニュアルでは、統計を頻繁に収集するようにという説明が1ページごとに出てくるように感じるかもしれません。この項では、そのようにすべき理由について説明します。この項では、計算されたいくつかの基本的な統計について最初に説明し、次に、最適化ルーチンが計算されたデータベースのプロファイルをどのように使用するかということについてのハイレベルな説明を行ないます。
COLLECT STATISTICS(最適化ルーチン形式)の構文と使用法については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。
収集されて計算された統計とデモグラフィック
次の変数の集合は、COLLECT STATISTICS文の最適化ルーチン形式を実行するたびに計算される列統計のもっとも重要な集合を表わします。
HELP STATISTICS (最適化ルーチン形式)リクエストを実行依頼することによって、列またはインデックスのサマリー統計を表示することができます。インデックスまたは列セットの詳細統計を表示するには、SHOW STATISTICSリクエストを実行する必要があります。
詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。
一部の統計データの記述は、等高間隔に関するものか、それとも偏りのある間隔に関するものかによって異なります。詳細については、間隔ヒストグラムを参照してください。
格納される統計は、列の値にひずみ(スキュー)があるかないかによって異なってきます。列値の分布が偏っていない場合、統計情報は等高間隔ヒストグラムに格納されます。列値の分布が非常に偏っている場合、その統計情報は偏りのある間隔ヒストグラムに格納されます。
次のテーブルの属性の説明の中で見積もりという語が用いられていることに注意してださい。列間隔の値が正確なのは、値のデモグラフィックが収集された時点だけです。格納される列の統計は、列の値の分布の単なるスナップショットに過ぎません。
属性 | 説明 |
---|---|
どの間隔タイプでも保持される統計値 | |
収集日付 | HELP STATISTICSとSHOW STATISTICSによりDate (日付)として報告されます。 統計が最後に収集された日付。 |
収集時刻 | HELP STATISTICSとSHOW STATISTICSによりTime (時刻)として報告されます。 統計が最後に収集された時刻。 |
行数 | SHOW STATISTICSによりNumber of Rows (行数)として報告されます。 テーブルのカーディナリティの見積もり。 |
nullの数 | SHOW STATISTICSによりNumber of Nulls (Nullの数)として報告されます。 列またはインデックス列統計セットで部分的または完全にnullの列がある行数の見積もり |
間隔の数 | SHOW STATISTICSによりNumber of Intervals (間隔の数)として報告されます。 列またはインデックスの統計を含む度数分布ヒストグラムの間隔の数。 |
全nullの数 | SHOW STATISTICSによりNumber of All Nulls (全Nullの数)として報告されます。 列またはインデックス列統計セットですべての列がnullである行数の見積もり |
サンプルの比率 | SHOW STATISTICSによりSampled Percent (サンプルの比率)として報告されます。 サンプルに含まれるテーブルの行の合計数のおおよその比率。 nullまたは0は、サンプリングがアクティブでないことを示します。つまり、全統計(100%サンプル)が収集されることを意味します。 |
バージョン番号 | SHOW STATISTICSによりVersion (バージョン)としてレポートされます。 統計が収集されたときに有効だった統計構造のバージョン番号。 |
単一AMPサンプルからのテーブルのカーディナリティ見積もり | SHOW STATISTICSによりSUMMARY統計のOneAMPSampleEstとして報告されます。 最適化ルーチンによって、カーディナリティの見積もりを外挿し、テーブルの拡大を検出するために使用されます。 サマリー統計または任意の列セットに対する統計が収集または更新されると必ず更新されます。 |
すべてのAMPサンプルからのテーブルのカーディナリティ見積もり | SHOW STATISTICSによりSUMMARY統計のAllAMPSampleEstとして報告されます。 最適化ルーチンによって、カーディナリティの見積もりを外挿し、テーブルの拡大を検出するために使用されます。 サマリー統計または任意の列セットに対する統計が収集または更新されると必ず更新されます。 |
固有値の数 | HELP STATISTICSとSHOW STATISTICSによりNumber of Uniques (固有値の数)として報告されます。 列の固有な値の数の見積もり。 |
間隔の最小値 | SHOW STATISTICSによりMin Value (最小値)として報告されます。 指定された列またはインデックスに関して間隔のうちの推定最小値。 |
値ごとの行の最大数 | HELP STATISTICSまたはSHOW STATISTICSでは報告されません。 列の特定の値をもつ行の最大数の見積もり。 |
値ごとの行数のうちの代表的な数 | HELP STATISTICSまたはSHOW STATISTICSでは報告されません。 列の特定の値をもつ行の数のうちのもっとも一般的な数の見積もり。 |
等高間隔統計 | |
間隔の最大値 | SHOW STATISTICSによりMaxValueとして報告されます。 間隔内の列またはインデックスの最大値の見積もり。 |
最頻数値 | SHOW STATISTICSによりModeValueとして報告されます。 間隔内の列またはインデックスで最も頻繁に出現する値(または複数の値)の見積もり。 |
最頻数値を持つ行の数 | SHOW STATISTICSによってMode Frequency (最頻値の頻度)として報告されます。 列またはインデックスの最頻値を含む間隔に含まれる推定行数。 |
非最頻数値の数 | SHOW STATISTICSによってNon-Modal Values (非最頻数値)として報告されます。 間隔内の列またはインデックスのモーダルではないとはっきり識別できる値の数の見積もり。 |
最頻数値を持たない行の数 | SHOW STATISTICSによってNon-Modal Rows (非最頻数行)として報告されます。 間隔内における列またはインデックスの値の分布のひずみの見積もり。 |
偏りの大きい間隔統計 | |
偏りのある値 | SHOW STATISTICSによりBiasedValueとして報告されます。 |
偏りのある値の頻度 | SHOW STATISTICSによりBiasedValueFreqとして報告されます。 |