【问题标题】:Postgresql sending the query result very slowly via networkPostgresql 通过网络非常缓慢地发送查询结果
【发布时间】:2017-01-19 09:07:18
【问题描述】:

我花了几天时间修复运行缓慢的 sql 查询,但没有成功。我发现了很多类似的问题和答案,但我有一个不同的问题:

-我有一个包含 5000 条记录和 30 列的简单表格
-我通过 pgAdmin3 发送了一个简单的select * from this_table 命令并工作了 15-20 秒以显示结果

没有JOIN,也没有WHERE

我意识到,当查询运行时,postgresql 通过 LAN 向客户端发送数据只有 4 Mb/ps。我有千兆局域网。文件副本、ftp 和其他任何东西都在此服务器上的同一通道上以 700-800 Mb/ps 的速度运行。

我已经使用 psql 命令在服务器控制台上测试了相同的 sql 命令。查询仅几毫秒就完成了,这没关系。我没有磁盘和任何文件问题。

我已经阅读了有关 postgresql 配置的所有文档,增加了work_mem 等等,但没有任何成功。

我能做什么?

【问题讨论】:

  • 您阅读了所有文档?
  • 在客户端尝试\copypsql - 可能显示数据需要很长时间,而不是传输?..

标签: performance postgresql networking psql


【解决方案1】:

时间几乎肯定花在 pgAdmin III 上,检查进程的 CPU 利用率以确定。显示大型结果集可能需要 pgAdmin III 很长时间。

也许你应该改用psql

【讨论】:

  • 感谢您的回答。 CPU 运行在 5-10%。我在 Mikrotik 路由器上看到了网络进程。我确切地看到,数据以 4mbps(缓慢)从服务器移动到客户端。正如我所写,在服务器上,结果会在几毫秒内显示出来。
  • 在客户端机器上使用psql性能如何?
  • 操作!来自客户端的 psql 以 431 Mbps 的速度读取......(快 100 倍......)现在,我意识到 pgAdmin 真的很慢,我必须检查 devart dotConnect 组件以加快我的 Windows 应用程序软件的速度。现在,我确定,服务器端、网络等都可以。也许我会尝试 odbc 连接。谢谢你的评论!
  • 是的,从应用程序内部使用 pgAdmin III 几乎可以肯定是不正确的。如果您计划使用 .NET,为什么要使用 ODBC 连接?使用您正在使用的编程语言的本机界面。
  • 我在我的 .NET 应用程序中使用 DevartDot Connect 组件(不是免费组件)。现在,我将检查我的代码和加快速度的可能性。
猜你喜欢
  • 2022-10-19
  • 2017-04-29
  • 2012-06-05
  • 2015-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多