本章讨论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表使用重复行检查。