开源
pg_flame:用于后期解释分析输出的火焰图生成器
来源:元经纪     阅读:944
网站管理员
发布于 2023-02-06 05:40
查看主页

概述

Postgres 数据库功能剖析东西,把 EXPLAIN ANALYZE 成果经过火焰图展现。  

安装

 Homebrew

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

您可以使用以下命令通过 Homebrew 安装:

$ brew install mgartner/tap/pg_flame

下载预编译的二进制文件

在发布选项卡中下载一个已编译的二进制文件。下载后, pg_flame进入您的$PATH.

 Docker

或者,如果您想使用 Docker 构建程序,也可以。

$ docker pull mgartner/pg_flame

从源代码构建

如果您想从源代码构建二进制文件,请运行以下命令。请注意,编译需要 Go 版本 1.13+。

$ git clone https://github.com/mgartner/pg_flame.git
$ cd pg_flame
$ go build

pg_flame将创建一个二进制文件,您可以将其放入您的$PATH.

用法

pg_flame程序从标准输入读取 JSON 查询计划并将火焰图 HTML 写入标准输出。因此,您可以根据需要通过管道和直接输入和输出。

示例:一步

$ psql dbname -qAtc 'EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) SELECT id FROM users' \
    | pg_flame \
    > flamegraph.html \
    && open flamegraph.html

示例:使用 SQL 文件的多步骤

使用查询创建一个 SQL 文件EXPLAIN ANALYZE

-- query.sql
EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON)
SELECT id
FROM users

然后运行查询并将 JSON 保存到文件中。

$ psql dbname -qAtf query.sql > plan.json

最后,生成火焰图 HTML。

$ cat plan.json | pg_flame > flamegraph.html

例子:Docker

如果您已按照上述 Docker 安装步骤进行操作,则可以将查询计划 JSON 通过管道传输到容器并保存输出 HTML。

$ psql dbname -qAtc 'EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) SELECT id FROM users' \
    | docker run -i pg_flame \
    > flamegraph.html

背景

Flamegraphs由 Brendan Gregg 发明,用于可视化分析软件的每个代码路径的 CPU 消耗。它们是许多类型的性能调查中有用的可视化工具。Flamegraphs 已被用于可视化 Oracle 数据库 查询计划 和查询执行 ,证明对调试缓慢的数据库查询很有用。

Pg_flame 是对 Postgres 查询计划的扩展。它生成查询计划的视觉层次结构。此可视化标识查询计划每个部分的相对时间。

该工具依赖于 spiermar/d3-flame-graph插件来生成火焰图。

[/hidecontent]

 
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
iOS 18.1正式版发布:苹果Apple Intelligence重磅上线!
Sandoz:追赶非专利药盛宴
潍坊市坊子区举行元宇宙配套产业园厂房交付,首批进驻园区的9家企业拿到了“金钥匙”
创新济宁,未来之城,科技赋能蓄势腾飞
王宝强新片《棋士》爆了:成为2025国产罪案剧第一

首页

分类

定制方案

消息

我的