Teradata-statistics

提供:Dev Guides
移動先:案内検索

Teradata-統計

Teradataオプティマイザーは、すべてのSQLクエリの実行戦略を考え出します。 この実行戦略は、SQLクエリ内で使用されるテーブルで収集された統計に基づいています。 テーブルの統計は、COLLECT STATISTICSコマンドを使用して収集されます。 オプティマイザーでは、最適な実行戦略を立てるために環境情報とデータ人口統計が必要です。

環境情報

  • ノード、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.

統計の表示

HELP STATISTICSコマンドを使用して、収集された統計を表示できます。

構文

収集された統計を表示する構文は次のとおりです。

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