3

更新:我突然想到: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

4

2 回答 2

2

要在不向客户端传输数据的情况下在服务器上获取执行时间,请使用EXPLAIN ANALYZE.

或者使用 pgAdmin 查询工具中的键盘快捷键:(SHIFTF7根据您的操作系统和版本,检查查询菜单中的键盘快捷键)。

顺便说一句,如果您查阅 pgAdmin 手册,请使用当前版本 - 截至目前的 1.18:
http ://www.pgadmin.org/docs/1.18/query.html

于 2013-10-19T00:19:09.493 回答
1

您正在测量将行传输到 pgAdmin 所需的时间:

http://www.pgadmin.org/docs/1.4/query.html

" 如果返回数据集,不仅会显示服务器执行的经过时间,还会显示从服务器检索数据到数据输出页面的时间。"

如果您尝试“从某个表中选择计数(*)”,它将与旧电脑一样快。

于 2013-10-18T22:09:54.787 回答