Teradata 简明教程

Teradata - Statistics

Teradata 优化器会针对每个 SQL 查询提出执行策略。此执行策略基于在 SQL 查询所用表中收集的统计信息。使用 COLLECT STATISTICS 命令收集表的统计信息。优化器需要环境信息和数据人口统计信息来提出最佳执行策略。

Environment Information

  1. 节点、AMP 和 CPU 的数量

  2. Amount of memory

Data Demographics

  1. Number of rows

  2. Row size

  3. 表中的值范围

  4. 每个值的行数

  5. Number of Nulls

有三种方法可用于收集表中的统计信息。

  1. Random AMP Sampling

  2. Full statistics collection

  3. Using SAMPLE option

Collecting Statistics

COLLECT STATISTICS 命令用于收集表中的统计信息。

Syntax

以下是收集表中的统计信息的语法。

COLLECT [SUMMARY] STATISTICS
INDEX (indexname) COLUMN (columnname)
ON <tablename>;

Example

以下示例收集 Employee 表的 EmployeeNo 列中的统计信息。

COLLECT STATISTICS COLUMN(EmployeeNo) ON Employee;

执行以上查询后,将产生以下输出。

*** Update completed. 2 rows changed.
*** Total elapsed time was 1 second.

Viewing Statistics

您可以使用 HELP STATISTICS 命令查看收集到的统计信息。

Syntax

以下是查看所收集统计信息的语法。

HELP STATISTICS <tablename>;

Example

以下是查看 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