Teradata - 性能调优



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

EXPLAIN

性能调优的第一步是在您的查询中使用EXPLAIN。EXPLAIN计划详细说明了优化器将如何执行您的查询。在EXPLAIN计划中,检查诸如置信度级别、使用的连接策略、临时文件大小、重新分配等关键词。

收集统计信息

优化器使用数据统计信息来制定有效的执行策略。COLLECT STATISTICS命令用于收集表的统计信息。确保收集的列的统计信息是最新的。

  • 收集在WHERE子句中使用的列以及在连接条件中使用的列的统计信息。

  • 收集唯一主键列的统计信息。

  • 收集非唯一二级索引列的统计信息。优化器将决定是否可以使用NUSI或全表扫描。

  • 虽然收集了基表的统计信息,但也要收集连接索引的统计信息。

  • 收集分区列的统计信息。

数据类型

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

转换

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

排序

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

临时空间问题

如果查询超过该用户的每个AMP临时空间限制,则会生成临时空间错误。验证EXPLAIN计划并确定消耗更多临时空间的步骤。这些中间查询可以拆分并分别放入以构建临时表。

主索引

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

SET表

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

更新大型表

更新大型表将非常耗时。与其更新表,不如删除记录并插入包含修改行的记录。

删除临时表

如果不再需要临时表(暂存表)和易失表,则将其删除。这将释放永久空间和临时空间。

MULTISET表

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

广告