Teradata - 统计
Teradata 优化器为每个 SQL 查询制定一个执行策略。此执行策略基于 SQL 查询中使用的表上收集的统计信息。使用 COLLECT STATISTICS 命令收集表上的统计信息。优化器需要环境信息和数据人口统计数据来制定最佳执行策略。
环境信息
- 节点、AMP 和 CPU 的数量
- 内存量
数据人口统计数据
- 行数
- 行大小
- 表中的值范围
- 每个值的行数
- 空值数量
有三种方法可以收集表上的统计信息。
- 随机 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