人大金仓数据库KES中查看数据物理存储的几种方法

关键字:

用户数据、物理存储、查看方法、人大金仓

一、概述

KES中用户数据在实际存储时,除了值以外会附带一些系统内部使用的信息,例如事务号、事务状态等。在分析数据库系统的问题时,常常需要观察物理数据的实际情况方便定位问题所在,本文整理了KES中提供的多种工具,方便查询数据的物理存储信息。

二、两种查询数据物理存储方法

  • 查询时投影列中指定隐藏列

test=# select * from t1;

a

---

(0 rows)

test=# insert into t1 values(100);

INSERT 0 1

test=# insert into t1 values(200);

INSERT 0 1

test=# insert into t1 values(300);

INSERT 0 1

test=#

test=# update t1 set a=10 where a=100;

UPDATE 1

test=# select tableoid, xmin, xmax, cmin, cmax, ctid, * from t1;

tableoid | xmin | xmax | cmin | cmax | ctid | a

----------+------+------+------+------+-------+-----

16436 | 1135 | 0 | 0 | 0 | (0,2) | 200

16436 | 1136 | 0 | 0 | 0 | (0,3) | 300

16436 | 1137 | 0 | 0 | 0 | (0,4) | 10

(3 rows)

在KES中,当我们创建数据表时,会隐式增加几个字段,这些字段由数据库系统自动维护,我们可以在执行select查询时的投影列中指定这些隐藏列,如xmin和xmax等。

  • 使用插件pageinspect

test=# create extension pageinspect;

CREATE EXTENSION

test=# select lp as tuple, t_xmin, t_xmax, t_field3 as t_cid, t_ctid, t_infomask2, t_infomask from heap_page_items(get_raw_page('t1', 0));

tuple | t_xmin | t_xmax | t_cid | t_ctid | t_infomask2 | t_infomask

-------+--------+--------+-------+--------+-------------+------------

1 | 1134 | 1137 | 0 | (0,4) | 16385 | 1280

2 | 1135 | 0 | 0 | (0,2) | 1 | 2304

3 | 1136 | 0 | 0 | (0,3) | 1 | 2304

4 | 1137 | 0 | 0 | (0,4) | 32769 | 10496

(4 rows)

插件pageinspect是用于查看数据的物理存储,可以读取指定关系中的指定块。与方法1不同的是,方法1只显示当前可见数据,而本方法会显示所有实际存储的数据,包括被删除或更新的不可见数据。

需要注意的是,KES默认未安装pageinspect插件,需要手动安装。

三、总结

KES除了提供了丰富完善的数据库功能,还提供了多种便捷的观测工具,借助这些实用工具能够方便用户或DBA更好的使用KES,带来更大价值。

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值