- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在一张非常大的 table 上吸尘。
当我运行它时,它说:
bacula=# VACUUM FULL VERBOSE file_partition_19
bacula-# ;
INFO: vacuuming "public.file_partition_19"
INFO: "file_partition_19": found 16242451 removable, 21024161 nonremovable row versions in 900380 pages
DETAIL: 0 dead row versions cannot be removed yet.
CPU 5.14s/14.42u sec elapsed 19.61 sec.
VACUUM
Time: 163784.767 ms
bacula=#
当它执行此操作时,它会很快显示到 CPU
行,然后等待很长时间才能显示最后两行(+ 提示符)。这反射(reflect)在时间差异上 - “经过 19.61 秒”,与 163 秒的“时间:”相比(显示是因为我设置了 \timing on
)。
虽然我没有给它们计时,但两次都差不多 - 启动命令,等待 20 秒,然后显示到“CPU”行,然后等待大约 3 分钟,然后打印其余部分。
这正常吗?为什么会这样?
最佳答案
它主要是重建表上的所有索引,它必须这样做,因为基本上“VACUUM FULL”会完全重写表。如果您从表中删除所有索引,则在“CPU”行之后应该几乎没有延迟。
AFAICT,CPU 使用率行由一个通用例程打印,该例程为其他(非 FULL)真空模式完成大部分工作。在“VACUUM FULL”的情况下是没有意义的。
如果您担心它花费的时间太长,我建议您查看 PostgreSQL wiki 中的“When to use VACUUM FULL and when not to”。十分之九的人在使用 VACUUM FULL 时他们实际上不应该使用。
关于postgresql - 为什么 vacuum full 在 "done"之后等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41730843/
来自 PostgreSQL(相对)新手的快速问题: 我们运行一个批处理过程,作为其最后一步,删除大部分以前的批处理。 磁盘空间是一个问题,因此我们需要确保 PostgreSQL 自行清理。 除了强制
我有一个: VACUUM cannot run inside a transaction block Redshift 中的 SQLWorkbenchJ 出现错误,但我已经提交了在此之前的所有事务。
SQLite Vacuum VACUUM 命令通过复制主数据库中的内容到一个临时数据库文件,然后清空主数据库,并从副本中重新载入原始的数据库文件。这消除了空闲页,把表中的数据排列为连续的,另外会清理
我有一个 android 应用程序,它涉及登录应用程序并执行许多 CRUD 操作。当用户第一次登录时,如果有任何可供该用户下载的数据,它会快速记录他/她。但是后来再次重新登录时,过程很慢,有时需要20
我目前正在清理一个具有 2 个索引和 2.5 亿个事件行以及大约同样多(或更多)的死行的表。我从我的客户端计算机(笔记本电脑)向我的服务器发出命令 VACCUM FULL ANALYZE。在过去的 3
我使用 PL/pgSQL 编写了一个脚本,我在 pgAdmin III 中运行。该脚本删除现有的数据库内容,然后为所需的测试场景(通常是各种类型的负载测试)添加一堆“示例”数据。加载数据后,我想“真空
我有一个移动应用程序同步过程。事务对数据库做了很多修改。由于这是在移动设备上完成的,因此我需要发出 VACUUM 来压缩数据库。 我想知道什么时候应该发出 VACUUM 在交易中,作为最终声明 还是在
databaseInstance.execSQL("PRAGMA auto_vacuum = FULL"); 目前我在创建数据库之后和创建数据库表之前使用它。我用数据库做了一些事务,所有这些数据的大小
如何为我的应用程序 VACUUM 我的 RoomDatabase?我围绕 Room 构建了我的整个应用程序,在某个时候,一张大 table 经常被删除,然后又被填满。 我试图用查询创建一个额外的 DA
我需要在执行VACUUM ANALYZE 后释放存储空间。我知道有 VACUUM FULL 但问题是,它锁定了可能导致问题的表(如果有正在进行的事务)。 有没有其他方法可以释放空间给操作系统? 感谢您
我刚刚在 Postgres 表上运行 Vacuum 以尝试恢复磁盘空间,但结果是所有磁盘空间都已被占用。 Vacuum crete 日志文件或事务日志是否可以删除? 最佳答案 我假设您执行了 VACU
来自 PostgreSQL 10.4 手册中关于完全真空的内容: Note that they also temporarily use extra disk space approximately
我的数据库中有一张表占用了 161GB 的硬盘空间。 200Gb 硬盘只剩下 5GB 可用空间。 以下命令显示我的表占用了 161GB 硬盘空间, 选择 pg_size_pretty(pg_total
我们有一个使用 PostgreSQL 数据库服务器的产品,该产品部署在数百个客户端上。他们中的一些人多年来收集了数十 GB 的数据。因此,在下一个版本中,我们将引入自动清理程序,该程序将在夜间批处理作
正常情况下,我正在使用我的应用程序,超过 30000 次下载没有问题。但我看到此错误开始出现在 android 开发人员控制台(崩溃和 ANRS) 中。 by app version 3.1.1 1
我在生产中继承了一个 PostgreSQL 数据库,其中有一个大小约为 250 GB 的表。它只有大约一万行事件行,我估计不超过 20 MB。 该表增长到如此大小是因为 AUTOVACUUM已经关闭了
使用此代码: var db = google.gears.factory.create('beta.database'); db.open('cominar'); db.execute('CREATE
是否可以在短时间内运行 PostgreSQL 11 的 VACUUM FULL 然后获得一些好处?还是中途取消会导致所有进度丢失? 我读过有关 pg_repack ( https://aws.amaz
是否可以在短时间内运行 PostgreSQL 11 的 VACUUM FULL 然后获得一些好处?还是中途取消会导致所有进度丢失? 我读过有关 pg_repack ( https://aws.amaz
有一个表,它有 200 行。但是显示的事件元组数量不止于此(大约 60K)。 select count(*) from subscriber_offset_manager; count ------
我是一名优秀的程序员,十分优秀!