📜  Teradata-性能调整

📅  最后修改于: 2020-11-29 09:09:04             🧑  作者: Mango


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

说明

性能调优的第一步是对查询使用EXPLAIN。 EXPLAIN计划详细说明了优化器如何执行查询。在“解释计划”中,检查诸如置信度,使用的联接策略,假脱机文件大小,重新分配等关键字。

收集统计数据

Optimizer使用数据受众特征来提出有效的执行策略。 COLLECT STATISTICS命令用于收集表的数据人口统计信息。确保在列上收集的统计信息是最新的。

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

  • 在“唯一主索引”列上收集统计信息。

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

  • 尽管收集了基本表的统计信息,但仍收集有关联接索引的统计信息。

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

资料类型

确保使用正确的数据类型。这样可以避免使用过多的存储空间。

转换次数

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

分类

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

线轴空间问题

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

主要指标

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

SET表

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

大表更新

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

删除临时表

如果不再需要临时表(临时表)和volatile,则将其删除。这将释放永久空间和线轴空间。

MULTISET表

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