更新:
我突然想到:pgAdmin是否只计算了在网格中绘制结果所需的时间,而非查询实际执行的时间?
我刚刚使用命令行(psql)执行了查询,并将结果输出到txt文件中,速度非常快(最多1-2秒)。
如果是这种情况,问题不在于postgresql/Ubuntu服务器配置,而是显示适配器的问题。
我是正确的,还是在错误的方向上搜索?
在我的“旧”PC(Core 2 Duo,4GB RAM,250GB SATA硬盘),在Arch Linux 64位上运行简单的“SELECT * FROM sometable”查询只需要0.4ms(我使用的是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等)中进行调整,但没有效果。当然,我已经进行了VACUUM,VACUUM ANALYZE并重新创建了所有索引。
有什么想法吗?我对Ubuntu Server的解决方案感兴趣,不太关心Windows 7计算机。
提前致谢, Ebl
我刚刚使用命令行(psql)执行了查询,并将结果输出到txt文件中,速度非常快(最多1-2秒)。
如果是这种情况,问题不在于postgresql/Ubuntu服务器配置,而是显示适配器的问题。
我是正确的,还是在错误的方向上搜索?
在我的“旧”PC(Core 2 Duo,4GB RAM,250GB SATA硬盘),在Arch Linux 64位上运行简单的“SELECT * FROM sometable”查询只需要0.4ms(我使用的是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等)中进行调整,但没有效果。当然,我已经进行了VACUUM,VACUUM ANALYZE并重新创建了所有索引。
有什么想法吗?我对Ubuntu Server的解决方案感兴趣,不太关心Windows 7计算机。
提前致谢, Ebl
EXPLAIN ANALYZE
了吗? - Ihor RomanchenkoEXPLAIN ANALYZE
,这样可以避免网格绘制的干扰。 - Andrew Lazarus