问题标签 [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 投票
4 回答
7719 浏览

postgresql - PostgreSQL 长真空

我目前正在清理一个具有 2 个索引和 2.5 亿个活动行以及大约相同数量(或更多)的死行的表。我从我的客户端计算机(笔记本电脑)向我的服务器发出了命令 VACCUM FULL ANALYZE。它在过去 3-4 天左右一直在开展业务;我想知道它是否会很快结束,因为我还有很多工作要做!

该服务器有一个四码 Xeon 2.66 GHz 处理器、12 GB 或 RAM 和一个 RAID 控制器,该控制器连接到 RAID 1 配置中的 2 个 10K rpm 146 GB SAS HD;它正在运行 Suse Linux。我想知道...

现在,首先 VACUUM postmaster 进程似乎只使用一个核心。其次,我没有看到非常高的 I/O 写入与 I/O 空闲时间的比率。第三,通过调用procinfo,我可以推断 VACUUM 进程大部分时间(88%)都在等待 I/0。

那么为什么不通过线程利用更多内核来使 RAID 控制器过载(获得高 I/O 写入空闲比)?如果 I/O 负载不高,为什么还要等待 I/O?为什么所有这些权力/资源都在它的手指上,但速度却没有更快?在我看来,VACUUM 可以而且应该是多线程的,特别是如果它在一张巨大的桌子上工作并且它是唯一一个工作的!

此外,他们是否可以配置 postgresql.conf 以使其多线程这样的 VACUUM?我可以杀死它并仍然从它的部分清理中受益吗?我需要在那张桌子上工作。

[我使用的是 PostgreSQL 8.1]

再次感谢

0 投票
1 回答
578 浏览

python - postgresql 中的动态数据

我打算让一个 python 脚本每秒在 2,433,000 行上执行许多更新。我目前正在尝试将 python 中的动态列作为 python dict 中的值。然而,让我的 python dict 与其他列中的更改保持同步变得越来越困难或不可行。

我知道我可以将 autovacuum 置于超速状态,但我想知道这是否足以赶上大量的更新。如果我能将一个 python 变量关联到每一行就好了……

我担心 VACUUM 和磁盘写入开销会杀死我的服务器?

关于如何将极其动态的变量与行/键关联的任何建议?

谢谢

0 投票
3 回答
5917 浏览

optimization - how to automatically determine which tables need a vacuum / reindex in postgresql

i've written a maintenance script for our database and would like to run that script on whichever tables most need vacuuming/reindexing during our down time each day. is there any way to determine that within postgres?

i would classify tables needing attention like this:

  • tables that need vacuuming
  • tables that need reindexing (we find this makes a huge difference to performance)

i see something roughly promising here

0 投票
7 回答
23298 浏览

python - PostgreSQL - 如何从事务块外的代码运行 VACUUM?

我正在将 Python 与 psycopg2 一起使用,并且我试图在VACUUM插入数千行的日常操作之后运行完整。问题是当我尝试VACUUM在我的代码中运行命令时,我收到以下错误:

如何从事务块外部的代码运行它?

如果它有所作为,我有一个简单的 DB 抽象类,它的一个子集显示在下面的上下文中(不可运行,异常处理和文档字符串被省略,并且行跨越调整):

0 投票
3 回答
3606 浏览

postgresql - JDBC postgres 真空超时

我正在尝试通过在 Java 中运行以下 SQL 指令来清理我的 Postgres 数据库:

真空详细分析

有时它似乎只是“挂起”是否有任何干净的方法可以中止该过程?我试过了

SET statement_timeout TO XXXX

但我收到错误消息“VACCUM 无法在事务块内运行”

0 投票
2 回答
2205 浏览

sql - 为什么 $dbh->do('VACUUM') 会因 Perl 的 DBD::SQLite 而失败?

我想VACUUM在某个时间在 Perl 下的 SQLite 数据库上做,但它总是说

DBD::SQLite::db 失败:不能从事务中 VACUUM

那么我该怎么做呢?

我正在使用AutoCommit => 0. 并且错误发生在:

0 投票
2 回答
12017 浏览

postgresql - postgreSQL 真空临时文件?

我有一个“小”问题。一周前,我的数据库达到了完整的磁盘容量。我删除了不同表中的许多行以释放磁盘空间。之后我尝试运行没有完成的完全真空。

我想知道的是。当我停止真空完全完成时,它是否会在磁盘上留下任何我必须手动删除的临时文件?我现在有一个磁盘容量为 100% 的数据库,不用说这是一个大问题。

释放磁盘空间的任何提示?

我正在使用 postgres 8.1.4 数据库运行 SUSE。

0 投票
4 回答
1504 浏览

php - 从 PHP 清理 PostgreSQL 数据库

我想从 PHP 中清理一个 PostgreSQL 数据库。

我试过这个:

我怎么知道这是否有效?

0 投票
3 回答
5203 浏览

sqlite - 如何对 Core Data SQLite 数据库进行 VACUUM?

按照设计,Core Data 不会向其 SQLite 数据库发出VACUUM SQL 命令,详见此处。我正在创建一个核心数据应用程序,它将在 SQLite 数据库中存储并稍后删除大型二进制文件(大小为 2-10MB)。随着时间的推移,这将导致碎片化和超出必要的 SQLite 数据库。我想定期发出一个 VACUUM 命令,比如说,在我运行的清理操作期间。

  • 如何以编程方式向 Core Data 的 SQLite 存储发出 VACUUM 命令?
  • 是否可以通过 Core Data 执行此操作,或者我必须挂载 SQLite 数据库并直接连接到它以执行 VACUUM SQL?
0 投票
5 回答
33456 浏览

database - 清空数据库是什么意思?

正如这个 Firefox 错误所引用的,清理数据库的行为是做什么的?所有现代数据库软件都支持此操作,还是仅某些软件支持?