Teradata-統計
Teradata Optimizerは、すべてのSQLクエリの実行戦略を考え出します。この実行戦略は、SQLクエリ内で使用されるテーブルで収集された統計に基づいています。テーブルの統計は、COLLECTSTATISTICSコマンドを使用して収集されます。オプティマイザーは、最適な実行戦略を考え出すために、環境情報とデータ人口統計を必要とします。
環境情報
- ノード、AMP、およびCPUの数
- メモリの量
データ人口統計
- 行の数
- 行サイズ
- 表の値の範囲
- 値ごとの行数
- ヌルの数
テーブルの統計を収集するには、3つのアプローチがあります。
- ランダムAMPサンプリング
- 完全な統計収集
- SAMPLEオプションの使用
統計の収集
COLLECT STATISTICSコマンドは、テーブルの統計を収集するために使用されます。
構文
以下は、テーブルの統計を収集するための基本的な構文です。
COLLECT [SUMMARY] STATISTICS
INDEX (indexname) COLUMN (columnname)
ON <tablename>;
例
次の例では、EmployeeテーブルのEmployeeNo列の統計を収集します。
COLLECT STATISTICS COLUMN(EmployeeNo) ON Employee;
上記のクエリを実行すると、次の出力が生成されます。
*** Update completed. 2 rows changed.
*** Total elapsed time was 1 second.
統計の表示
収集された統計は、HELPSTATISTICSコマンドを使用して表示できます。
構文
以下は、収集された統計を表示するための構文です。
HELP STATISTICS <tablename>;
例
以下は、Employeeテーブルで収集された統計を表示する例です。
HELP STATISTICS employee;
上記のクエリを実行すると、次の結果が生成されます。
Date Time Unique Values Column Names
-------- -------- -------------------- -----------------------
16/01/01 08:07:04 5 *
16/01/01 07:24:16 3 DepartmentNo
16/01/01 08:07:04 5 EmployeeNo