使用 DROP DISTRIBUTIONS ONLY 选项

使用 DROP DISTRIBUTIONS ONLY 选项来从 sysdistrib 表移除分发信息,并为其分发已被删除的那些表更新该系统目录中的 systables.version 列,而不收集任何 LOW 模式表和索引统计信息。

如果您同时指定 DROP DISTRIBUTIONS ONLY 选项和 FOR TABLE 子句,则 GBase 8s 为 FOR TABLE 子句指定的 table 的列的集合(或为所有列,如果您未提供 column 规范的话)移除现有的分发数据,但不收集任何 LOW 模式表和索引统计信息。

您必须有 DBA 权限或是要使用此选项的表的所有者。

下列示例移除 customer 表中 customer_num 列的分发:
UPDATE STATISTICS LOW 
        FOR TABLE customer (customer_num) DROP DISTRIBUTIONS ONLY;

当 ONLY 关键字不跟在 DROP DISTRIBUTIONS 关键字之后时,这会删除 customer.customer_num 分发信息,而不更新 LOW 模式选项生成的统计信息。此示例从系统目录删除任何描述 sysdistrib 表的 customer.customer_num 的行,并更新 systables 表中 customerversion 数目。不在 systables 上执行任何其他 LOW 模式更新,因此通过此示例不更改 nrownpused 列值,且不更新系统目录的 syscolumnssysfragmentssysindexes 表。在此示例中,LOW 关键字不起作用,但在 MEDIUM 或 HIGH 模式中 DROP DISTRIBUTIONS ONLY 选项不可用。

由于它未指定 FOR TABLE 子句,因此下一示例从 sysdistrib 表删除所有行,并为数据库中所有表更新系统目录中的 systables.version 列。
UPDATE STATISTICS DROP DISTRIBUTIONS ONLY;