Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 仅使用一个Linux Java进程/一个线程,每分钟可以完成多少次插入?_Postgresql_Insert - Fatal编程技术网

Postgresql 仅使用一个Linux Java进程/一个线程,每分钟可以完成多少次插入?

Postgresql 仅使用一个Linux Java进程/一个线程,每分钟可以完成多少次插入?,postgresql,insert,Postgresql,Insert,我必须在Postgresql表中插入600-1000万行。有 没有办法摆脱这些插页 我可以通过使用在多台机器上运行的多个进程进行扩展 我想知道一台英特尔i7和16GB内存的Linux机器, 可以在1分钟内使用插入的最大行数是多少 只有一个Java进程?假设TCP/IP调优等 有了这个答案,再加上我的实验,我就可以确定这个数字了 每台机器的进程数和机器数量 我很难达到每分钟超过2000-2500行 我正在使用Hibernate 5.2.5和无状态会话,只有一个线程 当我运行10个这样的进程时,我可

我必须在Postgresql表中插入600-1000万行。有 没有办法摆脱这些插页

我可以通过使用在多台机器上运行的多个进程进行扩展

我想知道一台英特尔i7和16GB内存的Linux机器, 可以在1分钟内使用插入的最大行数是多少 只有一个Java进程?假设TCP/IP调优等

有了这个答案,再加上我的实验,我就可以确定这个数字了 每台机器的进程数和机器数量

我很难达到每分钟超过2000-2500行

我正在使用Hibernate 5.2.5和无状态会话,只有一个线程

当我运行10个这样的进程时,我可以每分钟进行20000-25000次插入 这是吞吐量的线性增长

我想知道我在我的单一流程和 是否数量太少,如何增加每个进程的数量 吞吐量,也就是说,至少10000/分钟

thsnk,
Kumar

答案几乎肯定是在单个事务中运行所有
INSERT
s(每个线程)

除非您这样做,否则每个
INSERT
都会在其自己的事务中运行,这将迫使在每次插入结束时对事务日志进行磁盘刷新,从而使处理进入爬网状态


如果这是一个一次性过程,并且您可以承受数据丢失的风险(例如,您在开始之前做了一个很好的备份),您也可以在PostgreSQL中设置
fsync=off
(但完成后不要忘了将其重置为原始值!)。

我使用的是最低端的Intel CPU HP笔记本电脑。一个进程,一个线程: 我能够在没有调整的情况下每分钟(60秒)插入近50000次

原始编号是在其他设置中获得的。我有我的怀疑,因此我想从堆栈溢出中得到答案。我得到了我的答案,因此不需要进一步的回答

谢谢你的回答。这些规则也必须遵守。 此外,在开发系统时,必须能够执行分布式和并行程序

谢谢,
库马尔

你一定做错了什么。我可以很容易地使用javax每秒插入20.000行。有很多东西想要降低性能:索引、触发器、规则等等。方法之一:
analise(explain,verbose,buffers)
。每当我必须插入大量记录时,我都会跳过hibernate,使用原始jdbc和
COPY
命令。