技术干货 | 在 PostgreSQL 中设置查询超时

在 Navicat Monitor 3 监控工具中的查询分析器画面顶部,我们设置了一个图表,用以显示等待时间最长的查询:

能够标识出滞后的查询非常重要,因为它们可以让一切陷入瘫痪。

除了在标识出慢速查询并对其进行修复外,另一种策略就是全面限制查询执行时间。在 PostgreSQL 等专业级数据库中,可以通过设置 statement_timeout 变量来限制整个数据库甚至每个用户的查询执行时间。在这篇文章中,我们将学习如何在 Navicat 16 For PostgreSQL 中运用这个重要的数据库变量。

数据库级别设置 statement_timeout 变量

数据库设置默认语句超时是一个很好的起点。这可确保连接到数据库的任何应用程序或人员的查询运行时间都不会超时。一个合理的默认值应是 30 秒或 60 秒,但如果你愿意,可以设置更长的时间。以下是将值设置为 60 秒的语句:

ALTER DATABASE mydatabase SET statement_timeout = '60s';

在 Navicat 16 For PostgreSQL 中,我们可以选择主菜单中的“工具”>“服务器监控”>“PostgreSQL”以查看 statement_timeout 变量。你会在“变量”选项卡找到它:

事实上,因为服务器有很多变量,你可能要使用查找工具来找出 statement_timeout 变量!你可以单击“全部高亮显示”切换按钮以更有效地找到匹配的变量。

当然,SHOW 语句也能做到:

为特定用户设置查询超时

为了更精确控制,我们可以为特定用户设置查询超时值(你要知道总是会有人选择整个数据库!)。这能使用 ALTER ROLE 语句做到,它可以设置许多数据库变量,包括 statement_timeout。

我们尝试创建一个名为“guest”的新用户角色:

现在我们可以使用 ALTER ROLE 语句来限制查询执行时间,如下所示:

ALTER ROLE guest SET statement_timeout='5min';

我们可以查询 pg_roles 表来获取关于 statement_timeout 的信息(包括它是如何设置的):

rolconfig 值是一个数组,因此我们可以使用 unnest 取消嵌套,那么一行会显示一个设置:

关于在 PostgreSQL 中设置查询超时的结语

为用户标识出滞后的查询是非常重要的,因为它们可以使你的数据库性能陷入瘫痪。为此,Navicat Monitor 3 监控工具的查询分析器画面顶部就设计出了这个费时查询图表。

另一种方法是限制查询在超时之前可以执行多久。正如在本文中提到,可以在 PostgreSQL 的数据库、会话甚至单个角色级别设置查询超时。如果你还没有设置 statement_timeout 变量,我建议你尽快设置。这只是优化数据库性能的其中一步,它有助于确保你的数据库实例保持良好状况和可用。如果你有兴趣试用 Navicat 16 for PostgreSQL ,欢迎点击 这里 下载14天免费全功能软件!

PostgreSQL 相关技术文章

使用 Navicat Monitor 3 监控 PostgreSQL

使用 Navicat Monitor 3 跟踪 PostgreSQL 实例查询

在 Navicat Monitor 3 中查看 PostgreSQL 实例详细信息


 

往期回顾 

  1. 招募 Navicat Monitor 3.0 监控工具体验官 | 好礼相送
  2. 保姆级教程 | Navicat 人工备份和自动备份
  3. Navicat 16 正式支持 OceanBase 全线数据库产品
  4. Navicat 16 即将支持 Redis
  5. 免费试用 Navicat 16
  6. Navicat 20年发展史 | 1999 年成立于中国香港
  7. SQL 语句中 WHERE 1=1 的作用
  8. SQL 中计算总行数的百分比
  9. 互动有礼活动进行中 | 奖品为价值 819 元 Navicat Premium
  10. 假冒网站引发多重安全风险 | 官方严正声明:切勿在非官方渠道购买或下载 Navicat 软件


 


http://www.niftyadmin.cn/n/359291.html

相关文章

从生产者-消费者模型中学习互斥量,锁,条件变量

经典的并发控制模型 主要是练习mutex unique_lock conditional_variable 一、互斥量 1 mutex 互斥量 mutex 是一种互斥的同步原语,用于保护共享资源的访问,确保在同一时间只有一个线程可以访问共享资源。通过对互斥量加锁和解锁,可以实现…

SPI FLASH认识

文章目录 基本认知spi flash读写介绍nor flash的特性 基本认知 SPI Serial PeriPheral interface 串行外围设备接口,SPI接口主要引用在EEPRom、Flash、实时时钟、AD转换器、还有数字信号处理器和数字信号解码器之间。SPI总线系统是一种同步串行外设接口,…

【Linux】线程同步

文章目录 条件变量相关函数初始化条件变量-pthread_cond_init销毁条件变量-pthread_cond_destroy等待条件变量-pthread_cond_wait唤醒等待条件变量pthread_cond_broadcastpthread_cond_signal 小例子关于等待函数的补充条件变量使用规范 条件变量相关函数 初始化条件变量-pthr…

英特尔13代桌面CPU平台安装ubuntu20.04LTS记录

安装环境一: i7-13700K 华硕Z790-P 16X2GB内存 华硕 TUF 3070 O8G安装环境二: i5-13400 华硕B760M-A D4 8x2GB内存 UHD730核显安装系统: ubuntu20.04LTS(首先用光驱安装失败,后面用U盘更换ubuntu22.04.2LTS成功) 因为…

赛灵思-Zynq UltraScale+ MPSoC:QT与OPENCV交叉编译环境搭建

赛灵思-Zynq UltraScale MPSoC:QT与OPENCV交叉编译环境搭建 1、MPSOC 交叉编译环境简介 使用Linux交叉编译工具在开发中可以摆脱对petalinux的依赖,直接使用Linux交叉编译工具进行编译,可以使开发更加便捷。 由于获取Linux编译工具链需要用…

CSDN周赛回顾

CSDN周赛回顾 55期参赛体验近两期难度题型报告 参赛回顾CSDN 题库每日一练举报题库 最后的吐槽新题目相似度判定奖品 55期参赛体验 近两期难度 最近的题目有点难度了,老顾个人感觉至少达到了中级算法程度了,所以老顾的成绩变得稀碎。。。。 题型 再来…

品牌需要来看看这个UP主眼里的“她困境”

连续三次发布带货视频,但却仍然涨粉3w。 5月16日,时尚区UP主鹦鹉梨在B站发布作品《漫画胸能不能走出现实啊????》,视频中UP主指出现在女性在生活中的一大困境,当下互联网上的审美一…

人工智能MINIST手写数字识别之MINIST概念

MNIST是一个简单的视觉计算数据集,它是像下面这样手写的数字图片: MNIST 每张图片还额外有一个标签记录了图片上数字是几,例如上面几张图的标签就是:5、0、4、1。 MINIST数据 MINIST的数据分为2个部分:55000份训练数据(mnist.train)和10000份测试数据(mnist.test)。这…