Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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 插入表Postgres 9.4 vs 9.1_Postgresql_Postgresql 9.1_Postgresql 9.4 - Fatal编程技术网

Postgresql 插入表Postgres 9.4 vs 9.1

Postgresql 插入表Postgres 9.4 vs 9.1,postgresql,postgresql-9.1,postgresql-9.4,Postgresql,Postgresql 9.1,Postgresql 9.4,我的团队正在考虑从9.1切换到9.4,作为评估的一部分,我们希望衡量插入表中的改进程度…,其中有3-4列的固定长度类型,如INT,双精度。我们使用的是一个未打补丁的插入,表是记录的和非临时的fsync在上设置为 Q0:是否有任何理由认为9.4比9.1在这一特定声明上更快 例如,基于改进的WAL性能: 显然,最好的答案是去检查我们的数据并进行实验,但让我们进行一些推测 Q1:您是否了解绩效评估 Q2:有多少INSERT被WAL占用 服务器上的设置(从9.1config文件逐字复制) 您提供的链接

我的团队正在考虑从9.1切换到9.4,作为评估的一部分,我们希望衡量
插入表中的改进程度…
,其中有
3-4
列的固定长度类型,如
INT
双精度
。我们使用的是一个未打补丁的
插入
,表是
记录的
非临时的
fsync
在上设置为

Q0:是否有任何理由认为
9.4
9.1
在这一特定声明上更快

例如,基于改进的WAL性能:

显然,最好的答案是去检查我们的数据并进行实验,但让我们进行一些推测

Q1:您是否了解绩效评估

Q2:有多少
INSERT
WAL
占用

服务器上的设置(从
9.1
config文件逐字复制)
您提供的链接基于中的信息-顺便说一句,这是一本很棒的读物。根据您建议的测试,我不希望有任何实际的性能差异,因为您不会利用并行或部分写入(关于wal文件)。也就是说,你将来可能会遇到这种情况。此外,9.4(9.1之后的版本)提供了许多有用的工具和性能增强,在我看来,这些工具和性能增强证明了从9.1到9.4的转换是合理的。例如,自9.2以来,JSON现在是一种数据类型,只进行索引扫描是可能的,内存排序提高了25%。9.3引入了物化视图(9.4中有并发刷新)和可更新的“简单”(9.4中的定义略微扩展)视图。在9.4中,聚合得到了增强并修改了系统定义(使用SQL命令更改配置设置的能力(进入最后读取的postgresql.auto.config,确保它覆盖postgresql.config值)

值得注意的是,默认日志记录也发生了变化。例如,当创建一个表时,您不会收到关于隐式索引和序列创建的消息(将log level设置为DEBUG1以修复-当我从9.1切换到9.3时,尤其是在讲座期间,这让我发疯)

关于问题1,我将运行一个基准测试(C和VM是唯一不免费的)。对于问题2,这实际上取决于您的wal设置,但根据我从您的配置文件中看到的情况,这与版本性能无关。我还将在您的系统上运行pgtune(下面的链接),以确保在测试之前配置文件尽可能优化

和其他评论者一样,只需构建它,看看会发生什么。如果直接插入有什么不同的话,您可能不会有什么不同,因此我会尝试使用大型、多表连接、大型排序和大量事务模拟(例如,大量插入、更新和删除—为了简单起见,只需使用plpgsql即可)—TCP查询还可以进行相当好的性能测试

链接:

要查找“新增内容”PostgreSQL wiki页面,请将版本号添加到以下内容的末尾


您可以在pgtune.leopard.in.ua找到pgtune的GUI版本;pgfoundry的独立下载似乎总是失败的。

排除所有疑问和意见:安装9.4,构建两个测试模式,并测量性能。@MikeSherrill'CatRecall'完全同意,但重要的是要知道为什么会有改进,甚至在开始考虑切换到新版本之前。有足够的参数可供调整,由于时间和其他限制,在生产中有时不可能“搜索”最优配置。
#fsync = off
#synchronous_commit = on
#wal_sync_method = fsync
#full_page_writes = on
#wal_buffers = -1
#wal_writer_delay = 200ms

shared_buffers = 15GB
temp_buffers = 1024MB
work_mem = 1024MB