Teradata - 性能调优

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

解释

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

收集统计信息

优化程序使用数据人口统计数据来提出有效的执行策略. COLLECT STATISTICS命令用于收集表的数据人口统计信息.确保列上收集的统计信息是最新的.

  • 收集有关WHERE中使用的列的统计信息子句和加入条件中使用的列.

  • 收集唯一主索引列的统计信息.

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

  • 收集关于连接索引的统计信息,但收集了基表的统计信息.

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

数据类型

确保使用正确的数据类型.这样可以避免使用超出要求的过多存储空间.

转换

确保连接条件中使用的列的数据类型与避免显式数据转换.

排序

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

假脱机空间问题

如果查询超过该用户的每个AMP假脱机空间限制,则会生成假脱机空间错误.验证说明计划并确定消耗更多假脱机空间的步骤.这些中间查询可以拆分并单独放置以构建临时表.

主索引

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

SET表

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

大表上的更新

更新大表将是时间耗时.您可以删除记录并插入包含已修改行的记录,而不是更新表.

删除临时表

删除临时表(暂存表)表)和不再需要的挥发物.这将释放永久空间和假脱机空间.

MULTISET表

如果您确定输入记录没有重复记录,那么您可以将目标表定义为MULTISET表,以避免SET表使用重复的行检查.