PostgreSQL 获取 PostgreSQL 中的执行时间

PostgreSQL 获取 PostgreSQL 中的执行时间

在本文中,我们将介绍如何在 PostgreSQL 数据库中获取 SQL 查询的执行时间。执行时间是指从开始执行 SQL 查询到完成执行的时间间隔,可以用于性能优化和调优。

阅读更多:PostgreSQL 教程

使用 EXPLAIN ANALYZE 获取执行时间

PostgreSQL 提供了 EXPLAIN ANALYZE 命令用于获取 SQL 查询的执行计划和执行时间。EXPLAIN ANALYZE 命令执行 SQL 查询并返回执行计划和执行时间信息。

下面是一个使用 EXPLAIN ANALYZE 获取执行时间的示例:

EXPLAIN ANALYZE SELECT * FROM users WHERE age > 18;
SQL

执行上述查询后,PostgreSQL 会返回查询的执行计划和执行时间信息。执行时间信息通常以 “Total runtime:” 开头,显示查询的实际执行时间。

例如:

QUERY PLAN
---------------------------------------------------------------------
Seq Scan on users  (cost=0.00..57.50 rows=50 width=20) (actual time=0.512..0.720 rows=50 loops=1)
  Filter: (age > 18)
  Rows Removed by Filter: 50
Planning Time: 0.097 ms
Execution Time: 0.773 ms
(5 rows)

Total runtime: 0.896 ms
SQL

以上示例中,查询的执行时间为 0.896 毫秒。

使用 pg_stat_statements 视图统计执行时间

PostgreSQL 还提供了 pg_stat_statements 视图来跟踪查询的执行时间和执行次数。pg_stat_statements 视图存储了每个 SQL 查询的执行计划、执行时间、以及执行次数等信息。

首先,需要在 PostgreSQL 中创建一个插件扩展,具体步骤如下:

  1. 运行 CREATE EXTENSION pg_stat_statements; 创建 pg_stat_statements 插件。

  2. 设置 shared_preload_libraries 配置项为 ‘pg_stat_statements’。

  3. 重启 PostgreSQL 服务器。

创建插件后,可以通过查询 pg_stat_statements 视图来获取 SQL 查询的执行时间信息。

SELECT query, total_time, rows FROM pg_stat_statements;
SQL

执行上述查询后,将返回所有 SQL 查询的执行时间。

例如:

query                                | total_time | rows
-------------------------------------+------------+------
SELECT * FROM users WHERE age > 18;   | 0.896      | 50
SELECT * FROM products WHERE price > 10| 1.201      | 100
SQL

以上示例中,第一个查询的执行时间为 0.896 毫秒,第二个查询的执行时间为 1.201 毫秒。

总结

本文介绍了如何在 PostgreSQL 中获取 SQL 查询的执行时间。通过使用 EXPLAIN ANALYZE 命令和 pg_stat_statements 视图,我们可以获取查询的执行计划和执行时间信息,帮助我们进行性能优化和调优。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册