我正在创建一个在几列上具有聚合函数的表,并且我没有任何连接。它有超过7百万行,并随机分配。这花了将近4到5个小时。
任何人都可以帮助如何优化或最好地在netezza中创建这些表。不幸的是,我们没有任何提示可供使用。
提前致谢。
答案 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选项数据仅在没有主机参与的情况下分布在数据表中。所以这是更快更容易的方式。