collect statistics column(column1,column2,column3) on table ;
and
collect statistics column(column1) on table ;
collect statistics column(column2) on table ;
collect statistics column(column3) on table ;
两种收集统计数据的方式有什么不同?两者在teradata中的优缺点是什么?
答案 0 :(得分:2)
如果您在搜索条件中一起使用column1,column2和column3,则在频繁执行的查询中,最好联合使用统计信息。 It will permit the Optimizer to estimate more accurately the number of qualifying rows for queries that specify these columns.
如果为这些列集定义了索引。然后Teradata将Multicolumn统计数据视为索引统计数据。
答案 1 :(得分:0)
收集统计信息的目的是帮助优化程序准备更有效的查询计划。收集统计信息可提供#唯一值,每值行数等信息。如果优化程序知道每个步骤必须处理多少行,则会生成更准确,更有效的查询计划。
此查询通过单列访问表数据:
SELECT *
FROM MyTable
WHERE column1 = 'James Bond'
这里只有单列统计信息才有用,因为我们知道大约需要多少行。多列统计信息没有用,因为它提供了列组(column1,column2,column3)的信息。
测试它的一种方法是对查询运行EXPLAIN。检查前/后计划,看看收集不同统计数据如何影响行估计值。