如何理解postgres解释分析?

时间:2015-08-24 10:54:23

标签: sql postgresql query-performance sql-execution-plan

我拥有的表数据大约有200万行,而我现在运行的查询只是从表中选择所有数据(选择*)。

这是一个非常天真的查询优化案例,但我想要理解的真正意图是解释分析。

以下是解释分析的输出和时间安排。

查询计划

 Seq Scan on sample  (cost=0.00..37929.83 rows=2185783 width=26) (actual time=0.065..348.752 rows=2185712 loops=1)
 Planning time: 0.102 ms
 Execution time: 463.020 ms
(3 rows)

因此,最大执行时间为0.3秒。

问题

  • 这个时间估计有多现实?我在Pgadmin上运行在行上选择*,它需要30秒。这是有道理的,因为它需要在屏幕上打印出整个数据。但这是否意味着数据库端的优化部分已完成并且我们通常面临的问题是打印数据
  • 我使用JDBC打印数据。获取和打印数据大约需要45秒。假设0.3秒是实际的数据库时间,剩下的时间是由Java程序打印出来的?我在同一个系统上运行,因此排除了网络I / O.

我是数据库优化的新手,我只是想了解如何理解postgres中的解释分析以及如何实际估计查询运行时间以及如何确定是否需要对数据库方面进行任何改进?

0 个答案:

没有答案