问题标签 [vacuum]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1234 浏览

postgresql - PostgreSQL如何在使用--jobs参数时找到导致真空死锁的原因

如何在 PostgreSQL 9.5 中找到导致死锁错误/失败的原因,当使用选项 --jobs 对数据库执行完全真空数据库以并行运行完全真空时。

我只是得到一些进程号和表名......如何防止这种情况,以便我可以成功地并行对数据库进行完全真空处理?

0 投票
1 回答
465 浏览

greenplum - 我不应该一起运行真空分析吗?我应该单独运行真空和分析吗?假设已完成大量删除和更新

假设在 GP 表上完成大量删除和更新。

我不应该一起运行真空分析吗?我应该单独运行真空和分析吗?GP 最佳实践文档说“不要运行真空分析” http://gpdb.docs.pivotal.io/4300/pdf/GPDB43BestPractices.pdf

我运行真空分析时它的运行顺序是什么?是否有围绕订单运行真空和分析的最佳实践?为什么 Pivotal 说不要同时运行它们?

0 投票
2 回答
2774 浏览

postgresql - 将列类型从 int 更改为 bigint 可以释放空间?

我有一个int类型列的表,在一个大约 15 M 行的表中。
操作系统 windows 7 和 C 盘(安装了 postgres)显示:

59 GB 免费 238 GB

然后我将此列类型更改为bigint

现在,C盘:

61 GB 免费 238 GB

如何释放 2 GB?看起来这bigint将占用更少的空间int?或者发生了什么?

目前这台机器(这是本地/家庭计算机)上没有其他进程。

0 投票
1 回答
1567 浏览

amazon-redshift - AWS Redshift Vacuum 返回错误:断言

尝试清理 Redshift 集群中的表会返回:

错误:错误:断言

对于其他表真空工作得很好。该表相当大,但针对它运行的查询似乎有效。

知道如何获取有关问题的更多信息并尝试修复吗?我应该尝试制作表格的副本(考虑到表格的大小,可能是一夜之间的工作)?

谢谢你的帮助。

0 投票
2 回答
2038 浏览

postgresql - 为什么“完成”后真空完全等待?

我在一张非常大的桌子上抽真空。

当我运行它时,它说:

当它这样做时,它会CPU很快显示到该行,然后等待很长时间才能显示最后两行(+提示)。这反映在时间上的差异 - “经过 19.61 秒”,与 163 秒的“时间:”相比(因为我设置了显示\timing on)。

虽然我没有给它们计时,但两个时间都差不多 - 启动命令,等待 20 秒,然后显示到“CPU”行,然后等待大约 3 分钟,然后打印其余部分。

这是正常的吗?为什么会这样?

0 投票
1 回答
1596 浏览

postgresql - pg_toast 表在 autovacuum 后没有减小

我在 Postgresql 9.3 上。

我有一个巨大的 pg_toast 表,pg_toast_675632占用 27 GB。

除非我有误解,否则它pg_toast_675632是如此之大,因为我json在数据表中有一个大的列pg_toast_675632my_table. 所以我大量简化了 json my_table(即从 100 个元素的 json 到 2-5 个元素)。但是,在 autovacuum 之后pg_toast_675632仍然是 27 GB。这是因为 autovacuum 不会将回收的空间返回到磁盘吗?请参阅此链接中 23.1.2 的第 3 段。

  1. 那么根据上面链接中的文档,我需要手动运行VACUUM (FULL) pg_toast_675632吗?

我知道这VACUUM (FULL)需要很长时间,并且会在pg_toast_675632此期间锁定 from 写入。

  1. 有哪些风险VACUUM FULL pg_toast_675632?这是否等同于锁定my_table,因为这pg_toast-675632是相关的?
0 投票
1 回答
185 浏览

postgresql - Postgres:我们总是需要至少 3-4 倍释放最大表的空间吗?

我们正在使用 Postgres 存储约 2.000.000.000 个样本。这最终出现在具有约 500 个 mio 条目和约 100GB 大小的表中。

我想要做什么:例如更新表格条目:UPDATE table SET flag = true;

在此之后,表是原来的两倍,即 200GB 为了取回空间(存储在 SSD 上),我们:“VACCUM FULL table”

不幸的是,此步骤再次需要大量空间,导致真空由于剩余空间太少而失败。

我的问题: 这是否意味着,为了只进行一次 UPDATE 查询并为该数据库中的其他表取回空间,我们需要至少 300-400GB 的空间用于 100GB 表?

0 投票
1 回答
152 浏览

sqlite - sqlite3 在触发器中执行真空时出现语法错误

我正在使用 sqlte3.8.8,试图创建一个触发器来清理旧数据。这是我输入的SQL:

但是我在“vacuum;”上遇到了语法错误。但是,它在 sqlite 命令行中运行良好。

是不是不能在触发器中使用“真空”?

0 投票
1 回答
4000 浏览

postgresql - PostgreSQL 清理一张大表

我有 Postgres 9.4.7,我有一个大表 ~100M 行和 20 列。表查询是每分钟 1.5k 次选择、150 次插入和 300 次更新,但没有删除。这是我的自动真空配置:

autovacuum_analyze_scale_factor 0
autovacuum_analyze_threshold 5000
autovacuum_vacuum_scale_factor 0
autovacuum_vacuum_threshold 5000
autovacuum_max_workers 6
autovacuum_naptime 5s

在我的情况下,数据库几乎总是处于真空状态。当一个吸尘会话结束时,另一个开始。

所以主要问题是:有没有一种常用的方法来清理大桌子?

这里还有一些其他问题。

标准真空不扫描整个表,“分析”只扫描 30k 行。所以在相同的负载下,我应该有一个恒定的执行时间,是真的吗?我真的需要分析表格吗?频繁的“分析”能否对大表的查询计划进行任何有用的更改?

0 投票
1 回答
176 浏览

postgresql - 将截断的记录移动到 Postgresql 9.5 中的另一个表

问题如下:从一个表中删除所有记录,然后将它们插入到另一个表中。

我有一个按日期标准分区的表。为了避免对每条记录一个一个地进行分区,我将数据收集在一个表中,并定期将它们移动到另一个表中。复制的记录必须从第一个表中删除。我正在使用带有 RETURNING 的 DELETE 查询,但副作用是 autovacuum 需要做很多工作来清理原始表中的混乱。

我正在尝试实现相同的效果(复制和删除记录),但没有为真空机制创建额外的工作。

当我删除所有行(通过删除不带 where 条件)时,我在考虑TRUNCATE,但它不支持 RETURNING 子句。另一个想法是以某种方式配置表,在删除操作时自动从页面中删除元组,而无需等待真空,但我没有找到是否可能。

你能建议一些我可以用来解决我的问题的东西吗?