0

我在 Windows 上遇到了 libpq 的问题。连接到数据库并运行“select * from some_table;” 很慢。

该表只有 1800 行,7 列。没有斑点等。

查询大约需要 3500 毫秒,在 linux 中大约需要 800 毫秒。(大约 500 毫秒是网络时间,服务器在我所在位置的世界另一端。)

硬件相同(双启动)

为什么在windows中这么长?我在 pqsl 和 pgadmin 中进行了测试,以排除应用程序代码中的错误。

有什么建议或线索吗?

4

1 回答 1

0

我敢打赌,真正的问题是防病毒软件出现问题。确实,Windows 上的 PostgreSQL 可能不如 Linux 上的性能好,但是您看到的差异不能简单地与多进程和多线程之间的差异(写入时复制等)有关。

首先要做的是排除防病毒软件等原因。由于该软件位于磁盘 I/O 的读取和写入之间,因此它能够使您的磁盘 I/O 显着变慢。此外,如果它足够慢,它可能会使顺序磁盘 I/O 性能更像是随机磁盘 I/O,这不是一件好事。因此,请尝试关闭您的防病毒软件(最好不要连接到网络)。

我要看的第二件事是文件系统碎片。这些文件是否严重碎片化?如果是这样,磁盘 I/O 也会更加昂贵。除此之外,进行干净启动、手动启动服务并再次尝试可能会排除干扰磁盘 I/O 的其他程序。

一旦你解决了问题,那么想出一个解决方案应该很简单。

于 2013-03-14T09:06:48.817 回答