更新:我突然想到:pgAdmin 是否有可能计算的不是查询的实际时间,而是在网格中绘制结果所需的时间?
我刚刚使用命令行 (psql) 执行了查询并将结果输出到一个 txt 文件中,而且速度非常快(最多 1-2 秒)。
在这种情况下,问题不在于 postgresql / ubuntu 服务器配置;这是一个显示适配器的问题。
我是对的还是在错误的方向搜索?
在运行 Arch Linux 64 位的“旧”PC(Core 2 Duo,4GB RAM,250GB SATA HD)上,我可以在 0.4 毫秒内运行一个简单的“SELECT * FROM sometable”查询(我使用的是 pgAdmin 3)。该数据库是 PostgreSQL 9.1(带有 PostGIS),该表包含大约 60.000 行。
我已将数据库转移到一台较新的计算机(Core i5、8GB RAM、1TB Western Digital Black SATA III)上,相同的查询需要 22 秒(!!!)较新的计算机运行的是 Ubuntu Server 13.04 64 位。
为了进一步测试,我将数据库复制到 Windows 7 64 位 PC(Core i5,6GB RAM)上,查询运行大约 10 秒。
这显然是一个配置问题,但我有点困惑是 PostgreSQL 还是 Ubuntu Server 的配置问题。
我已经尝试过使用 PostgreSQL 的 conf 文件(kernel.shmmax、shared_buffers 等)但无济于事。当然,我已经 VACUUMed、VACUUM ANALYZed 并重新创建了所有索引。
有任何想法吗?我对 Ubuntu Server 的解决方案感兴趣,并不真正关心 Windows 7 计算机。
提前致谢,
Ebl