作者:金涛

PostgreSQL新增extension pg_surgery, 提供了两个函数:

  • heap_force_freeze - 强制要冻结tuple
  • heap_force_kill - 强制删除tuple
jintao@jintao-ThinkPad-L490:~/personal/code/postgresql-master$ psql
psql (14devel)
Type 'help' for help.
mydb=# select version();version
---------------------------------------------------------------------------------------------------------PostgreSQL 14devel on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bit
(1 row)
mydb=# create extension pg_surgery ;
CREATE EXTENSION
mydb=#
mydb=# \dx+ pg_surgeryObjects in extension 'pg_surgery'Object description
--------------------------------------------function heap_force_freeze(regclass,tid[])function heap_force_kill(regclass,tid[])
(2 rows)
mydb=# create table test_surgery(id int);
CREATE TABLE
mydb=#
mydb=# insert into test_surgery select generate_series(1,5);
INSERT 0 5
mydb=#
mydb=# select xmin, ctid, id from test_surgery ;xmin | ctid  | id
------+-------+----836 | (0,1) |  1836 | (0,2) |  2836 | (0,3) |  3836 | (0,4) |  4836 | (0,5) |  5
(5 rows)
mydb=# select heap_force_freeze('test_surgery'::regclass, array[ '(0,1)' ]::tid[]);     /*freeze单个ctid*/heap_force_freeze
-------------------
(1 row)
mydb=# select xmin, ctid, id from test_surgery ;xmin | ctid  | id
------+-------+----2 | (0,1) |  1836 | (0,2) |  2836 | (0,3) |  3836 | (0,4) |  4836 | (0,5) |  5
(5 rows)
mydb=# select heap_force_freeze('test_surgery'::regclass, array[ '(0,2)', '(0,5)' ]::tid[]);     /*freeze单个ctid*/heap_force_freeze
-------------------
(1 row)
mydb=# select xmin, ctid, id from test_surgery ;xmin | ctid  | id
------+-------+----2 | (0,1) |  12 | (0,2) |  2836 | (0,3) |  3836 | (0,4) |  42 | (0,5) |  5
(5 rows)
mydb=#
mydb=# select heap_force_kill('test_surgery'::regclass, array[ '(0,1)' ]::tid[]);                  /*删除单个ctid tuple */heap_force_kill
-----------------
(1 row)
mydb=# select xmin, ctid, id from test_surgery ;xmin | ctid  | id
------+-------+----2 | (0,2) |  2836 | (0,3) |  3836 | (0,4) |  42 | (0,5) |  5
(4 rows)
mydb=# select heap_force_kill('test_surgery'::regclass, array[ '(0,3)', '(0,5)' ]::tid[]);            /*删除多个ctid tuple*/heap_force_kill
-----------------
(1 row)
mydb=# select xmin, ctid, id from test_surgery ;xmin | ctid  | id
------+-------+----2 | (0,2) |  2836 | (0,4) |  4
(2 rows)
mydb=#

了解更多PostgreSQL热点资讯、新闻动态、精彩活动,请访问中国PostgreSQL官方网站:www.postgresqlchina.com

解决更多PostgreSQL相关知识、技术、工作问题,请访问中国PostgreSQL官方问答社区:www.pgfans.cn

下载更多PostgreSQL相关资料、工具、插件问题,请访问中国PostgreSQL官方下载网站:www.postgreshub.cn

PostgreSQL 14新插件pg_surgery相关推荐

  1. 探索PostgreSQL 14新特性--SEARCH和CYCLE

    探索PostgreSQL 14新特性--SEARCH和CYCLE PG14的SEARCH和CYCLE新功能大大简化了递归查询的方式,本文给出一些基于旅行计划的示例. 创建数据库 本文示例基于任何PG1 ...

  2. PostgreSQL 14 版本发布,快来看看有哪些新特性!

    文章目录 性能增强 数据类型和 SQL 管理功能 复制和恢复 安全增强 更多特性 大家好!我是只谈技术不剪发的 Tony 老师. PostgreSQL 全球开发组于 2021-05-20 发布了 Po ...

  3. PostgreSQL 14中TOAST的新压缩算法LZ4,它有多快?

    对于列压缩选项,PostgreSQL 14提供了新的压缩方法LZ4.与TOAST中现有的PGLZ压缩方法相比,LZ4压缩更快.本文介绍如何使用整个选项,并和其他压缩算法进行性能比较. 背景 PG中,页 ...

  4. PostgreSQL 14及更高版本改进

    PostgreSQL 14及更高版本 本文谈谈PG14中的关键特性及社区中正在谈论PG15及更高版本的内容. PG14的主要特性 逻辑复制的改进 PG14中对逻辑复制进行了几项增强: 1) 正在进行中 ...

  5. 基于QGIS初探PostgreSQL的PostGIS插件,包括YUM和编译安装PostGIS

    写在前面:本文介绍 QGIS,只是为了展示怎么使用 PostGIS,因作者本人追求的是 PostgreSQL,所以本文的重点还是 PostGIS 这个 PostgreSQL 的插件,QGIS软件只做简 ...

  6. PostgreSQL全局临时表插件pgtt的使用

    墨墨导读:本文主要介绍PostgreSQL全局临时表插件pgtt的使用. https://github.com/darold/pgtt 前言 PostgreSQL目前到最新12版本只支持本地临时表不支 ...

  7. 极客日报:阿里旗下App接入微信支付;马斯克成世界首富;PostgreSQL 14 RC 1发布

    一分钟速览新闻点! 阿里回应App接入微信支付 抖音起诉知乎名誉侵权 小米上诉"小米穿戴"图形商标被驳回 拼多多.美团已支持众多主流支付渠道 清华AI学生华智冰首次露正脸唱歌 快手 ...

  8. 【Postgresql】pg_show_plans插件

    介绍 pg_show_plans是一个显示当前运行的所有SQL语句执行计划的模块.它在plan结束位置,截获并存储当前plan tree,从而使其他会话可以打印存储plan tree.目前此模块支持从 ...

  9. PostgreSQL 14和SCRAM认证的改变--应该迁移到SCRAM?

    PostgreSQL 14和SCRAM认证的改变--应该迁移到SCRAM? 最近,一些PG使用者反馈他们切换到PG14后,遇到了一些连接错误. "FATAL:  password authe ...

最新文章

  1. Apache下PHP的几种工作方式
  2. 腾讯AI Lab的研究方向
  3. SpringCloud Consul自定义服务注册
  4. POJ 2676 Sudoku【DancingLinks,数独】
  5. iconfont矢量 在已经有的情况下新增图标
  6. Elasticsearch-head插件的安装与使用
  7. 麦克纳姆轮全向移动机器人速度空间分析
  8. cygwin--简单备忘
  9. Ubuntu安装划词翻译软件Goldendict 单词翻译 句子翻译
  10. 关于ASCII码和机内码
  11. 操作系统原理实验——实验一 Linux基本操作
  12. 什么是业务模式、商业模式、经营模式、盈利模式和发展模式?
  13. 如何量化炒股中的上升下降趋势及k线形态_如何量化炒股之代码思维
  14. 【自制小工具】快速批量查询IP归属地(自动去重、按国内外汇总,并智能识别出错误IP)
  15. Android对未签名的apk进行签名
  16. 淘宝天猫商家运营,宝贝标题如何突出卖点,标题编写方法小技巧
  17. 零基础转行IT学习什么好?
  18. 如何再UOS/Ubuntu中创使用ufw设置防火墙
  19. STM32 USB HID Mouse And Keyboard (guide)
  20. 函数表达式与命名函数区别

热门文章

  1. 三维重建(二):包裹相位以及绝对相位求解
  2. 【shiro】视频教程【雷哥】
  3. Django基础学习
  4. 腾讯云~Docker安装Nginx
  5. 当当网产品总监变性后遭解雇,法院「恢复工作,有权上女厕」!我们应该如何来看待此类问题?...
  6. ESP32 应用实践:基于 ULP 的超低功耗浇花设备
  7. HarmonyOS-Ability向Slice发送通知
  8. HTML5+CSS3实现轮播图
  9. 排烟管道过长怎么处理_抽油烟机因管道太长排烟困难有何办法解决
  10. GoLang设计模式之单例模式