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