netezza如何在加载数据后重新排序表

时间:2015-07-26 21:01:19

标签: netezza

我在netezza的表看起来像这样:

b,2
b,1
a,2
a,1
a,3
c,1
c,2

我想用第一个coloumn对它重新排序,所以看起来像这样:

a,2
a,1
a,3
b,2
b,1
c,1
c,2

如何重新排序表而不创建新表?

2 个答案:

答案 0 :(得分:1)

如果要为特定列优化区域映射而不使用ORDER BY重新创建表,请将表更改为具有ORGANIZE ON(COL_NAME)子句。这不会立即导致磁盘上表的任何更改,但会为GROOM设置集群数据的阶段。

之后,运行GROOM TABLE TABLE_NAME RECORDS ALL。这将聚集该列上的数据。

随后运行GROOM TABLE TABLE_NAME RECORDS READY以对新添加的行进行聚类。

我还应该补充一点,默认情况下只有区域映射会跟踪INTEGER,DATE和TIMESTAMP,但是使用ORGANIZE将导致跟踪字符列的区域映射。

答案 1 :(得分:-2)

您可以使用以下排序算法之一,空间复杂度为O(1)

https://en.wikipedia.org/wiki/Sorting_algorithm

你必须采用算法来匹配字母而不是数字,但这很容易。