重新聚簇之前用CLUSTER聚簇过的表。

概要

clusterdb [connection-option ...] [-v] [-t table] [[-d] dbname]

clusterdb [connection-option ...] [-a] [-v]

clusterdb --help

clusterdb --version

描述

聚簇一个表意味着根据一个索引在物理上重新排序磁盘上的表,这样索引扫描操作能够以某种相继的顺序访问磁盘上的数据,从而提高使用该索引的查询的索引搜索性能。

clusterdb工具将在数据库中查找任何之间用SQL命令CLUSTER聚簇过的表,并且用上次使用的相同索引再次聚簇它们。从未被聚簇过的表不受影响。

clusterdb是SQL命令CLUSTER的包装程序。 尽管在Greenplum数据库中支持这种方式对表聚簇,但不推荐使用它,因为CLUSTER操作本身极慢。

如果用户确实需要以这种方式排序表以提升查询性能,Greenplum推荐使用CREATE TABLE AS语句重排序磁盘上行的表而不是使用CLUSTER。如果用户确实以这种方式“聚簇”表,那么就与clusterdb没什么关系了。

选项

-a | --all 聚簇所有数据库。 [-d] dbname | [--dbname] dbname

指定要被聚簇的数据库名。如果没有指定并且没有使用-all,会从环境变量PGDATABASE中读取数据库名。如果环境变量也没设置,将使用连接所指定的用户名作为数据库名。 -e | --echo 回显clusterdb生成并且发送给服务器的命令。 -q | --quiet 不要显示响应信息。 -t table | --table table

仅聚簇提及的表。 -v | --verbose 在处理期间打印详细信息。

连接选项 -h host | --host host

指定Greenplum的Master数据库服务器在其上运行的机器的主机名。如果没有指定,会从环境变量PGHOST读取或者默认为localhost。 -p port | --port port

指定Greenplum的Master数据库服务器在其上监听连接的TCP端口。如果没有指定,会从环境变量PGPORT读取或者默认为5432。 -U username | --username username

要用其进行连接的数据库角色名。如果没有指定,会从环境变量PGUSER读取或者默认为当前系统用户名。 -w | --no-password 从不发出口令提示。如果服务器要求口令认证并且不能通过其他方式(例如.pgpass文件)提供口令,则连接尝试将会失败。这个选项对于批作业和脚本很有用,因为这些情况下不会有用户输入口令。 -W | --password 强制口令提示。

示例

要聚簇数据库test

clusterdb test

要聚簇名为xyzzy的数据库中的单一表foo

clusterdb --table foo xyzzyb

另见

[CLUSTER](../../ref_guide/sql_commands/CLUSTER.html#topic1)

当前内容版权归GreenPlum和翻译组所有,若有侵权请联系删除下架 修订时间: 2024-09-15 21:48:06

results matching ""

    No results matching ""