本章讨论Teradata中性能调整的过程。

解释

性能调整的第一步是在查询中使用EXPLAIN。 EXPLAIN计划提供优化程序如何执行查询的详细信息。在解释计划中,检查关键字,如置信度级别,使用的连接策略,假脱机文件大小,重新分配等。

收集统计数据

优化程序使用数据受众特征来制定有效的执行策略。 COLLECT STATISTICS命令用于收集表的数据人口统计。确保在列上收集的统计数据是最新的。
收集在WHERE子句中使用的列以及在连接条件中使用的列上的统计信息。
收集唯一主索引列的统计信息。
收集非唯一二级索引列的统计信息。优化器将决定是否可以使用NUSI或全表扫描。
收集关于联接索引的统计信息,尽管收集了基表上的统计信息。
收集分区列上的统计信息。

Data Types

确保使用正确的数据类型。这将避免使用超过所需的过量存储。

Conversion

确保连接条件中使用的列的数据类型兼容,以避免显式数据转换。

Sort

删除不必要的ORDER BY子句,除非必需。

Spool Space Issue

如果查询超过该用户的每个AMP卷轴空间限制,则会生成假脱机空间错误。 验证解释计划并识别占用更多假脱机空间的步骤。 这些中间查询可以拆分并单独放置以构建临时表。

Primary Index

确保为表正确定义了主索引。主索引列应均匀分布数据,应经常用于访问数据。

SET Table

如果定义了SET表,那么优化器将检查记录是否与插入的每个记录重复。要删除重复检查条件,可以为表定义唯一辅助索引。

UPDATE on Large Table

更新大表将是耗时的。您可以删除记录,并插入带有修改行的记录,而不是更新表。

Dropping Temporary Tables

删除临时表(临时表)和挥发性(如果不再需要它们)。这将释放永久空间和假脱机空间。

MULTISET Table

如果确定输入记录不具有重复记录,则可以将目标表定义为MULTISET表,以避免SET表使用重复行检查。