GreenPlum中的vacuumdb和analyzedb

0    51    1

Tags:

👉 本文共约4657个字,系统预计阅读时间或需18分钟。

vacuumdb

垃圾收集并分析数据库。

概要

描述

vacuumdb是用于清理Greenplum数据库的工具。 vacuumdb还将生成Greenplum数据库查询优化器使用的内部统计信息。

vacuumdb是SQL命令VACUUM的包装。 通过此工具和通过其他访问服务器的方法来清理数据库之间没有明显的区别。

选项

-a | —all

清理所有数据库。

[-d] dbname | [—dbname=]dbname

要清理的数据库的名称。 如果未指定此选项,并且未使用-a(或--all),则从环境变量PGDATABASE读取数据库名称。 如果未设置,则使用为连接指定的用户名。

-e | —echo

回显vacuumdb生成并发送到服务器的命令。

-f | —full

选择完全清理,这可以回收更多空间,但是需要更长的时间并排他锁定表。

Warning: 在Greenplum数据库中不建议使用VACUUM FULL。

-F | —freeze

冻结行事务信息。

-q | —quiet

不显示响应。

-t table [(column)] | —table=table [(column)]

仅清理或分析该表。 只能与--analyze或--analyze-all选项一起指定列名。 可以通过写入多个-t开关来清理多个表。 如果指定列,则可能必须从shell转义括号。

-v | —verbose

在处理过程中打印详细信息。

-z | —analyze

收集统计信息以供查询优化器使用。

-Z | —analyze-only

仅计算统计信息以供查询优化器使用(不清理)。

-V | —version

打印vacuumdb版本并退出。

-? | —help

显示有关vacuumdb命令行参数的帮助,然后退出。

连接选项

-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

强制输入密码提示。

--maintenance-db=dbname

指定要连接以发现应清理哪些其他数据库的数据库名称。 如果未指定,将使用postgres数据库,如果不存在,将使用template1。

注解

vacuumdb可能需要连接几次master服务器,每次都要求输入密码。 在这种情况下,使用~/.pgpass文件很方便。

示例

清理数据库test:

清理分析数据库bigdb:

要清理名为mydb的数据库中的单个表foo,并分析表的单个列bar。 请注意表名和列名两边的引号,从shell转义括号:

analyzedb

一个提供对表的递增和并发ANALYZE操作的工具。对追加优化表来说, analyzedb只在统计数据不是最新的时候才更新统计信息。

概要

描述

analyzedb工具递增并发地更新Greenplum数据库中指定表的表数据的统计信息。

在执行ANALYZE操作时,analyzedb创建了表元数据的快照并将它 存储在Master主机的磁盘上。只有在表格被修改的情况下才执行ANALYZE操作。如果 表或者分区自从上次分区依赖没有被修改过,则analyzedb会自动跳过表或分区, 因为它已经包含了最新的统计信息。

  • 对追加优化表来说,analyzedb如果统计数据数据不是最新的,则会逐渐分析统计数据。 例如,如果表数据在表的统计数据收集之后改变了。如果没有该表的统计数据,则收集统计数据。
  • 对于堆表,统计信息总是被更新。

即使表格统计信息是新的,也可以指定--full选项来更新追加优化表的统计信息。

默认情况下,analyzedb最多创建5个并发会话来并行分析表。 对于每个会话,analyzedb发出一个ANALYZE命令到 数据库并指定不同的表名。-p选项控制最大并发会话数。

分区追加优化表

对于一个分区的追加优化表analyzedb检查分区表的根分区和叶子分区。 如果需要,该工具将更新非当前分区和根分区的统计信息。

GPORCA需要根分区统计信息。默认情况下,如果统计信息不存在,那么analyzedb 工具将收集分区表的根分区的统计信息。如果任何叶子节点有陈旧的统计信息,那么,analyzedb 也会刷新根分区的统计信息。刷新根节点的统计信息的成本和分析一个叶子分区相当。用户可以指定 --skip_root_stats来禁用分区表的根分区的统计信息的收集。

注意

如果表已经由DML或DDL命令(包括INSERT, DELETE, UPDATE, CREATE TABLE, ALTER TABLE 和 TRUNCATE)修改,则analyzedb工具会更新追加优化表的统计信息。 该工具通过比较表的元数据和之前analyzedb操作中所保存的快照目录元数据来确定表是否已经被修改。表元数据的快照 作为状态文件存储在Greenplum数据库主数据目录中的db_analyze// 目录中。

该工具不会自动删除旧的快照信息。时间久了,这些快照会占用大量的磁盘空间。为了回收磁盘空间,您可以 保留最近的快照信息,将旧的快照删掉。 用户可以指定--clean_last或者--clean_all选项来删除由 analyzedb生成的状态文件。

如果用户未指定表,一组表或模式,那么analyzedb工具会根据需要收集所有系统 目录表和用户定义的表中的统计信息。

外部表不受analyzedb的影响。

包含空格的表名是不支持的。

在表上运行ANALYZE命令,(不使用analyzedb工具),不会更新表的元数据, analyzedb工具通常使用这些元数据通常来确定表的统计信息是否是最新的表的元数据。

选项

--clean_last

删除由上一次analyzedb操作生成的状态文件。所有的其他选项, 除了-d都会被忽略。

--clean_all

删除由analyzedb生成的所有状态文件。 所有其他操作除了-d都会被忽略。

-d dbname

指定包含要分析的表的数据库的名称。如果未指定此选项,则从环境变量PGDATABASE 中读取数据库名称。如果未设置PGDATABASE,则使用连接指定的用户名。

--debug

如果指定,则将日志级别设置为调试。在执行命令期间,调试级别信息被写入日志文件和命令行。 这些信息包括公用程序执行的命令和每个ANALYZE操作的持续时间。

-f config-file | —file config-file

包含要分析的表的列表的文本文件。可以指定当前目录的相对文件路径。

该文件每行列出一个表。表名必须使用模式名称进行限定。或者,可以使用-i或 -x来指定列名。文件中国不允许其他选项。其他诸如--full 的选项必须在命令行中指定。

只有一个选项可用于指定要分析的文件:-f或--file, -t ,或 -s。

当在多个表上执行ANALYZE操作时候,analyzedb 会创建并行会话来并行分析表。该-p选项控制并发会话的最大数目。

在下面的示例中,第一行施加了一个ANALYZE操作对表public.nation, 第二行仅对public.lineitem表的l_shipdate和 l_receiptdate列施加了一个ANALYZE操作。

--full

对所有指定的表执行ANALYZE操作。即使统计数据是最新的,也会执行该操作。

--gen_profile_only

不执行ANALYZE操作,但是更新analyzedb收集的表统计信息快照。 如果有其他选项制定了表或者模式名,该工具仅更新指定表的快照信息。

如果ANALYZE命令在数据库表上运行并且您想更新analyzedb该表 的快照信息,请指定该选项。

-i col1, col2, …

可选的,必须用-t选项指定。对于使用-t选项指定的表, 仅收集指定列的统计信息。

只能指定-i, 或-x。这两个选项不能同时指定。

-l | —list

列出将用指定选项进行分析的表格。ANALYZE操作不执行。

-p parallel-level

并行分析的表的数量。并行级别可以是1到10之间的整数,包含首尾值。默认值是5.

-s schema

指定要分析的模式。模式中的所有表将被分析。只能在命令行中指定一个模式名称。

只有一个选项可用于指定要分析的文件:-f或--file, -t,或 -s。

-t schema.table

只收集schema.table的统计信息。 表名称必须使用模式名称进行限定。在命令行上只能指定一个表名。用户可以指定-f 选项来指定文件中的多个表,或者指定-s选项来指定模式中的所有表。

只有其中一个选项可用于指定要分析的文件:-f或--file, -t,或 -s。

-x col1, col2, …

可选的,必须用-t选项来指定。对于使用-t选项指定的表, 请排除指定列上的收集的统计信息。统计信息只收集在未列出的列上。

只能指定-i, 或-x。这两个选项不能同时指定。

-a

静默模式,不提示用户确认。

-h | -? | —help

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
GreenPlum中的vacuumdb和analyzedb后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章
验证码:
请关注本站微信公众号,回复“小麦苗博客”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部