对许多 PostgreSQL 查询进行基准测试

2024-01-16

在复杂的网页上会执行数百个查询。我正在寻找一种方法来对这些查询进行基准测试。 我尝试嵌入解释分析进入查询resp。进入 psql 函数,选择每个查询的执行时间并进行比较。 但解释分析似乎无法以任何方式嵌入。

是否有其他解决方案来比较某些查询的执行时间?

多谢


嵌入没有问题EXPLAIN在 PL/pgSQL 中:

CREATE OR REPLACE FUNCTION profile(
      IN query text,
      OUT total_cost double precision,
      OUT runtime double precision
   ) RETURNS record
  LANGUAGE plpgsql STRICT AS
$$DECLARE
   j json;
BEGIN
   EXECUTE 'EXPLAIN (ANALYZE, FORMAT JSON) ' || query INTO j;
   total_cost := (j->0->'Plan'->>'Total Cost')::double precision;
   runtime := (j->0->'Plan'->>'Actual Total Time')::double precision;
   RETURN;
END;$$;

您可以按如下方式使用它:

test=> SELECT * FROM profile($$SELECT * FROM large WHERE val = 'mama'$$);
┌────────────┬─────────┐
│ total_cost │ runtime │
├────────────┼─────────┤
│   14542.43 │ 207.836 │
└────────────┴─────────┘
(1 row)

不要将其与不受信任的查询一起使用,因为该函数容易受到 SQL 注入的攻击。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对许多 PostgreSQL 查询进行基准测试 的相关文章

  • 返回年份数组作为年份范围

    我正在尝试查询一个包含以下内容的表character varying 年份列 并将这些年份作为逗号分隔的年份范围字符串返回 年份范围将由数组中存在的连续年份确定 不连续的年份 年份范围应以逗号分隔 数据类型的原因是character var
  • PostgreSQL:比较 json [重复]

    这个问题在这里已经有答案了 众所周知 目前 PostgreSQL 还没有方法来比较两个 json 值 比较就像json json不起作用 但是选角呢json to text before Then select x a y b json t
  • JPA 和 PostqreSQL:长字符串持久化

    谁能告诉我如何使用 JPA 保存长文本 我使用 PostgreSQL 这是我在类中定义很长字符串的方法 Lob private String body 然而 这会产生一个类型的字段字符变化 255 在数据库中 此外 我尝试使用 Column
  • PostgreSql“运行安装后步骤...数据库集群初始化失败”

    我是一名 Windows 用户 我花了几个小时不断地安装和卸载 然后才使其正常工作 前 10 次左右才看到标题中的错误消息 我将其作为一个自我回答的问题放在这里 以防止其他人在安装时可能遇到同样的问题 并为像我这样第一次使用 Postgre
  • 如何计算 Postgres 上图表中所有连接的节点(行)?

    我的桌子有account id and device id One account id可以有多个device ids 反之亦然 我正在尝试计算每个连接的多对多关系的深度 Ex account id device id 1 10 1 11
  • postgreSQL 在 WAMP 上的集成

    我刚刚在 Windows 7 上安装了 postgreSQL 我正在尝试将 postgreSQL 与 WAMP 服务器集成 为此 我在 httpd conf 和 php ini 文件中进行了以下更改 1个加载模块c path to libp
  • pg_dump 与 pg_dumpall?使用哪一个来进行数据库备份?

    I tried pg dump然后在另一台机器上我尝试导入 sql 并填充数据库 我看到 CREATE TABLE ERROR role prod does not exist CREATE TABLE ERROR role prod do
  • 部分唯一索引不适用于冲突子句 PostgreSQL

    表结构 create table example a id integer b id integer c id integer flag integer 部分索引 create unique index u idx on example a
  • 使用 NLog .NET Core 将日志记录到 PostgreSQL DB

    我尝试将日志记录集成到 NET Core 中的数据库 我能够设置 NLog 并将消息记录到 SQL Server 这很容易 但是当我尝试将 DB 切换到 PostgreSQL 时 似乎没有记录任何内容 以下是startup cs中的代码 p
  • 如何在Django项目中使用PostgreSQL的存储过程或函数

    我正在开发一个 Django 项目 我决定在 PostgreSQL 中编写逻辑代码 而不是用 Python 编写 因此 我在 PostgreSQL 中创建了一个存储过程 例如 存储过程如下所示 create or replace proce
  • 在 Postgres 中存储加密数据 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我需要在 Postgres 中以加密形式存储某些数据 显然 我需要对其进行加密 存储 并且能够读取和解密 做这个的最好方式是什么 The bes
  • postgresql:插入...(选择*...)

    我不确定它是否是标准 SQL INSERT INTO tblA SELECT id time FROM tblB WHERE time gt 1000 我正在寻找的是 如果 tblA 和 tblB 位于不同的数据库服务器中怎么办 Postg
  • 为 PostgreSQL 查询选择正确的索引

    简化表 CREATE TABLE products product no integer PRIMARY KEY sales integer status varchar 16 category varchar 16 CREATE INDE
  • PostgreSQL - 致命:用户“myuser”身份验证失败[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我刚刚在我的 Ubuntu Box 中安装了 PostGreSQL 我想做的第一件事就是创建一个数据库 我读了文档 http www postgres
  • PLpgSQL 函数不返回匹配的标题

    当给定文本时 我试图返回电影名称以及演员和工作人员的数量 当我输入字符串并使用 ilike 时 我的查询返回不匹配的标题 我之前创建了一个视图 其中包含要在函数中输入的电影标题和工作人员数量 我的代码是 create or replace
  • PostgreSQL:删除数据库但数据库仍然存在[重复]

    这个问题在这里已经有答案了 我是 PostgreSQL 的新手 我尝试着理解它 我熟悉数据库和MySQL 我正在尝试删除我创建的数据库 因为 psql 似乎忽略了我尝试通过 Django 推送的更改 当我执行时 l我得到以下回复 List
  • 将 SQL Server 2008 DB 迁移到 Postgres [重复]

    这个问题在这里已经有答案了 我想将 SQL Server 2008 数据库迁移到 Postgres 有没有一种无痛的方法来做到这一点 是否有任何工具可以扫描架构和存储过程以标记兼容性问题 无痛http dbconvert com conve
  • Django 和 PostgreSQL - 值对于类型字符变化来说太长(512)

    我正在从测试 SQLite 数据库迁移到 PostgreSQL 数据库 我有一个插入到数据库中的示例对象 它在 SQLite 上工作 但在 PostgreSQL 中给我一个错误 代码片段是 car CarItem objects creat
  • Rails 的多个数据库不适用于远程数据库

    我有一个远程只读 postgres 数据库 它是通过 docker 实例维护的卡尔达诺数据库同步 https github com input output hk cardano db sync 我设法将开发数据库连接到它 它工作正常 但由
  • “WHERE”处或附近的语法错误

    创建 postgres 函数时会导致错误 如下所示 错误 WHERE 处或附近的语法错误 第 19 行 其中 s shift id shiftid 错误 错误 WHERE 处或附近的语法错误 SQL状态 42601 人物 108 请帮忙 C

随机推荐

  • 如何在 Python OpenCV 中读取 TIFF 图像的 Alpha 通道?

    我想使用 Python OpenCV 从 tiff 图像中读取 alpha 通道 我正在使用 Enthought Canopy 和 OpenCV 2 4 5 3 模块 我按照 OpenCV 网站的教程使用 cv2 imread 但它似乎不起
  • 通过函数链创建节点和边时,在命令末尾使用 Iterate() 步骤。这一步有什么用呢?

    在 Tinkerpop 3 3 Gremlin 中通过函数链创建节点和边时 在命令末尾使用 Iterate 步骤 这个 iterate 步骤的意义是什么 我在解释其功能的文档中找不到任何提及 iterate 步骤的内容 有人可以向我指出文档
  • 第二次在 foreach 时未在函数内定义变量

    考虑所有这些文件 vars php if local var var foo foo var1 var1 foo1 foo1 else var foo var1 foo1 remote vars remote php is the same
  • Facebook 与 API 版本 2.9 共享自定义参数

    我需要在 Facebook 上分享测验结果 其中包含自定义标题 图片和说明 效果完美4月18日更新至2 9版本之前 但它不适用于 2 9 版本 那我是不是错过了什么 或者 Facebook 不希望我们在 2017 年分享我们网站的自定义 F
  • 高尔夫代码:Mandelbrot 集

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 代码高尔夫的通常规则 下面以Python中的实现为例 from PIL import Imag
  • 如何对“process.platform”的程序撒谎?

    有一个在 Node 上运行的 CLI 可以通过以下方式执行command在命令行上 在其代码中 通过以下方式对 Windows 用户停用了某些功能if process platform win32 process exit 1 现在我想禁用
  • 如何匹配特定的 io::Error 类型?

    我试图一次读入一个文件直到最后 2 个字节 并且我想捕获 EOF 错误 use byteorder BigEndian ReadBytesExt 1 3 4 use std fs File fn main let filename etc
  • 使用 ARM TrustZone 防止从非安全世界访问内存区域

    Context 我想拥有一个有钱人GNU Linux操作系统运行在正常的世界和一个带有集成的小型操作系统Monitor运行在安全世界 要求 我们必须绝对避免 the 正常的世界访问安全世界内存区域 Question 具有哪些特征信任区我们需
  • Typescript 和 __proto__ 属性

    因此 每次提到 proto 后通常都会提到 Brendan Eich 请求不要使用它 我一直在使用 Typescript 进行一些反射 使用它将类的原型链导航到提供的祖先类 并且希望注入保存类元数据的单个原型属性 有谁知道我可能产生的性能开
  • 为什么 fileOutputStream 在客户端-服务器应用程序中无法在空行(或换行符)之后输出任何字符串?

    在我的客户端 服务器应用程序中 当我尝试从服务器端下载文件时 该文件会被下载 但无法读取标题信息 例如一些带有换行符的附加文本 正如您在我的服务器类中看到的 以下信息应该在客户端打印出来 outputToClient printf Stat
  • 优秀的图书馆文档

    我在这里找到了很多推荐使用Excel图书馆用于编辑 Excel 文件 但我在任何地方都找不到任何文档 http code google com p excellibrary http code google com p excellibra
  • Qt 鼠标移动事件未被事件过滤器捕获

    我似乎无法在 eventFilter 中捕获 QEvent MouseMove 类型的事件 这是我的事件过滤器 bool MapWidget c eventFilter QObject obj QEvent ev if obj graphi
  • 如何使用主题文件自定义 ASP.NET 图表

    我想创建一个折线图 其中 x 轴是日期 y 轴上有绿色 0 位置 黄色 1 和红色 2 的位置 我怎样才能做到这一点 目前只有数字 我用 XML 尝试过 但我对它了解不多 而且有点令人困惑 我可以用它访问 y 轴的单个元素并将它们转换为文本
  • 将本地时间 (Java 8) 转换为日期

    我正在尝试转换java time LocalTime反对java util Date但找不到合适的方法 这样做的正确方法是什么 java 似乎没有内置直接转换方法 有什么原因吗 对于可能的重复项 如何换算乔达时间 https stackov
  • 在 WPF 中的网格中显示对其他控件的控件

    我正在开发一个 WPF 应用程序 主窗口的子控件包含在网格中 底行包含一个状态栏 应用程序必须通知用户 我想以编程方式在主窗口右下角的用户控件中显示通知 我希望通知用户控件显示在状态栏和上行中的控件上 如何在网格中包含的其他控件上显示一个控
  • 在网络浏览器中嵌入 Youtube 视频。对象不支持属性或方法

    YouTube 最近停止支持以 www youtube com v key 格式嵌入的视频 所以我试图将视频从 v 转换为 embed 但是 当我尝试导航到视频时 会弹出以下错误 我使用以下命令导航到该网页 WPF
  • 在C++中重载operator[],但要防止a[i]=one_special_specific_value

    我正在实现 Spare Vector ADT 并且想要重载运算符 我有一个 int 和 double 对的列表 我想通过例如创建新节点 5 3 5 a 5 3 5 但我想让它不可能为其中一个节点分配 0 值 因为它应该是一个备用向量 所以当
  • Android 设备:“new ServerSocket(6000)”上的权限被拒绝异常

    我收到 权限被拒绝 异常new ServerSocket 6000 在 Android 设备中 我读过很多帖子 其中说你必须把android permission INTERNET清单中的许可 我已经获得了此许可 并且仍然收到此消息 Non
  • 级联类型.ALL 不起作用

    我已在实体关系中设置了 CascadeType ALL 但每当我保留实体时 它都会部分起作用 前任 会员实体 OneToMany mappedBy member cascade CascadeType ALL private List
  • 对许多 PostgreSQL 查询进行基准测试

    在复杂的网页上会执行数百个查询 我正在寻找一种方法来对这些查询进行基准测试 我尝试嵌入解释分析进入查询resp 进入 psql 函数 选择每个查询的执行时间并进行比较 但解释分析似乎无法以任何方式嵌入 是否有其他解决方案来比较某些查询的执行