如何在Netezza中优化创建表?

时间:2014-03-13 06:01:21

标签: sql netezza

我正在创建一个在几列上具有聚合函数的表,并且我没有任何连接。它有超过7百万行,并随机分配。这花了将近4到5个小时。

任何人都可以帮助如何优化或最好地在netezza中创建这些表。不幸的是,我们没有任何提示可供使用。

提前致谢。

2 个答案:

答案 0 :(得分:2)

尝试创建table table_name( field1 bigint, field2 varchar(10))随机分发

插入table_name()

生成table_name

的统计信息

关键是控制您的数据类型。如果你的记录集是大型varchar字段,netezza将为速度而努力。如果您可以将您的数字字段转换为整数类型,您将看到更好的性能。所有varchar字段都需要“合理”(不要在每个字段上使用varchar(5000)。

另一种选择:

可能表格统计信息未更新。

在table_name上生成快速统计信息;

最后一个选项:

现有桌子上的分配键是什么?也许这会引发你的问题,因为桌子有很高的歪斜,这意味着你没有有效地分发整个盒子。如果您拥有该表,您可能希望使用更好的分发密钥进行重建,请记住它会很慢,但表的未来性能会更好。

希望有所帮助。

答案 1 :(得分:0)

您是否尝试过CTAS(创建表格为...)选项,CTAS选项数据仅在没有主机参与的情况下分布在数据表中。所以这是更快更容易的方式。