📅  最后修改于: 2021-01-11 11:31:24             🧑  作者: Mango
Teradata优化器为每个SQL查询提供了执行策略。该执行策略基于在SQL查询中使用的表上收集的统计信息。使用COLLECT STATISTICS命令收集表上的统计信息。
COLLECT STATISTICS(优化程序形式)语句收集基本表,哈希索引或联接索引的一列或多列的人口统计数据,计算收集到的数据的统计资料,并将提要存储在数据字典中。
当优化器生成表访问并加入计划时,它会使用摘要数据。
Teradata Statistics环境需要以下条件:
数据受众特征考虑以下因素:
我们应该收集有关新创建的空数据表的统计信息。空集合定义了已加载组的列,索引和概要数据结构。
在填充表进行原型制作之后,我们可以轻松地再次收集统计信息,并在生产时将其返回。
我们可以通过以下方式收集统计信息。
有三种方法可以收集表中的统计信息。
COLLECT STATISTICS命令用于收集表的统计信息。
句法
以下是收集表统计信息的基本语法。
COLLECT [SUMMARY] STATISTICS
INDEX (indexname) COLUMN (columnname)
ON ;
例
考虑具有以下记录的Employee表,例如:
Emp_Id | First_Name | Last_Name | Department_No |
---|---|---|---|
202001 | Mike | Richard | 1 |
202002 | Robert | Williams | 2 |
202003 | Peter | Collin | 2 |
202004 | Alexa | Stuart | 1 |
202005 | Robert | Peterson | 1 |
我们将运行以下查询来收集Employee表的Emp_Id,First_Name列的统计信息。
COLLECT STATISTICS COLUMN(Emp_Id, First_Name) ON Employee;
/* Total elapsed time was 0.00 second */
执行上述查询后,将产生以下输出。
Update completed. 2 rows changed.
我们可以使用HELP STATISTICS命令查看收集的统计信息。
句法
以下是查看收集到的统计信息的语法。
HELP STATISTICS ;
例
以下是查看在Employee表上收集的统计信息的示例。
HELP STATISTICS Employee;
执行上面的查询时,它将生成具有更新的列及其值的下表。
Date Time Unique Values Column Names
6/2/20 10:05:02 5 *
6/2/20 10:05:02 5 Emp_Id, First_Name