KingbaseES 如何查看表的创建时间
前言
在oracle数据库中,我们可以查看数据字典dba_objects得到表的创建时间。在Kingbase中如何查看表的创建时间呢?Kingbase数据库中无法通过数据字典查看有关信息,但可以通过其他方法实现。
1、通过查找表和数据库的物理文件方式
TEST=# create table test4 (id int primary key);
CREATE TABLE
TEST=#
TEST=# select now();
now
-------------------------------
2023-03-09 11:07:52.575930+08
(1 row)
insert into test4 select generate_series(1,1000);
TEST=# \dt+ test4;
List of relations
Schema | Name | Type | Owner | Size | Description
--------+-------+-------+--------+-------+-------------
public | test4 | table | system | 64 kB |
(1 row)
TEST=# \d test4
Table "public.test4"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
id | integer | | not null |
Indexes:
"test4_pkey" PRIMARY KEY, btree (id)
查看表的物理文件位置
TEST=# select pg_relation_filepath('test4');
pg_relation_filepath
----------------------
base/12145/41214
(1 row)
表test4的创建时间为11:08
[kingbase7@localhost 12145]$ ll 41214
-rw------- 1 kingbase7 kingbase7 40960 Mar 9 11:08 41214
如果表上的relfilenode发生改变,那么我们查看到的表文件创建时间就不准确,
例如:
TEST=# cluster verbose test4 using test4_pkey;
INFO: clustering "public.test4" using index scan on "test4_pkey"
INFO: "test4": found 0 removable, 1000 nonremovable row versions in 5 pages
DETAIL: 0 dead row versions cannot be removed yet.
CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s.
CLUSTER
再查看表的relfilenode改变了,文件的创建时间也变为最新的,这是因为cluster命令根据索引重新组织了表。
TEST=# select pg_relation_filepath('test4');
pg_relation_filepath
----------------------
base/12145/41234
(1 row)
kingbase7@localhost 12145]$ ll 41234
-rw------- 1 kingbase7 kingbase7 40960 Mar 9 11:23 41234
但是通常的alter table 操作不会有表的relfilenode改变这个问题,例如
ALTER TABLE test4 add COLUMN word text;
ALTER TABLE test4 add CHECK (word <> '');
ALTER TABLE test4 rename to test2
查看数据库创建时间:
TEST=# create database test_ty;
CREATE DATABASE
TEST=# select now();
now
-------------------------------
2023-03-08 17:02:15.615326+08
(1 row)
查看数据库oid
TEST=# select oid,datname,dattablespace from pg_database where datname='test_ty';
oid | datname | dattablespace
-------+---------+---------------
41213 | test_ty | 1663
(1 row)
操作系统查看数据库oid 41213创建时间为17:02
[kingbase7@localhost base]$ ll
drwx------ 2 kingbase7 kingbase7 8192 Mar 8 17:02 41213
实际测试以下语法均不会改变数据库的oid。也就是系统查看的数据库最初创建时间不会变。
ALTER DATABASE name RENAME TO new_name;
ALTER DATABASE test_ty owner TO u1;
ALTER DATABASE test_ty RESET ALL;
2,、通过数据库日志查看表,数据库的创建时间。
在配置文件KINGBASE.CONF中加入 log_statement = 'ddl' # none, ddl, mod, all
创建表:
TEST=# select now();
now
-------------------------------
2023-03-09 11:31:03.686769+08
(1 row)
TEST=# create table test_bak as select * from test4;
SELECT 1000
创建数据接:
TEST=# select now();
now
-------------------------------
2023-03-09 11:32:42.028259+08
(1 row)
TEST=# create database test_tx;
CREATE DATABASE
查看数据库日志:
2023-03-09 11:31:04.312 CST [19483] LOG: statement: create table test_bak as select * from test4;
2023-03-09 11:32:42.772 CST [19483] LOG: statement: create database test_tx;
总结:
以上两种方法可以查看数据库和表的创建时间,建议使用第一种方法,避免第二种方法频繁的ddl引起日志大小增加。
第一种方法在使用cluster table后会改变表的relfilenode,进而在操作系统上查到的表的创建时间不是原始创建时间。
KingbaseES 如何查看表的创建时间的更多相关文章
- mysql命令 SHOW TABLE STATUS LIKE '%city%'; 查看表的状态可以查看表的创建时间
show status like '%handler_read_key%'; #走索引的命令的数量. #查看存储引擎 mysql> show variables like '%engine%'; ...
- 怎么查看HBase表的创建时间
前几天HBase出现了RIT告警,忽然发现发出告警的Region所属的表并不是我创建出来的,于是就想看看这些表是怎么来的. 一时也没什么头绪,就先看看这些表是什么时候创建出来的吧,然后再根据时间点看看 ...
- MySQL查看数据表的创建时间和最后修改时间
如何MySQL中一个数据表的创建时间和最后修改时间呢? 可以通过查询information_schema.TABLES 表得到信息. 例如 mysql> SELECT * FROM `infor ...
- 修改SQL Server数据库表的创建时间最简单最直接有效的方法
说明:这篇文章是几年前我发布在网易博客当中的原创文章,但由于网易博客现在要停止运营了,所以我就把这篇文章搬了过来,因为这种操作方式是通用的,即使是对现在最新的SQL Server数据库里面的操作也是一 ...
- JPA注解实体类,给表添加创建时间,更新时间,id的生成以及创建唯一约束
首先创建一个BaseModel,自动生成创建时间和更新时间 @SuppressWarnings("serial") @MappedSuperclass public class B ...
- linux 查看帐号创建时间
查看用户的home目录的创建时间 查看日志 用stat 命令,可以看到目录的三个时间.不过这个时间只是用来参考的,确定一个范围. 查看日志是最准确的方法 /var/log/auth.log ,前提是你 ...
- spring data jpa之Auditing 表的创建时间,更新时间自动生成策略
java实际编程中,几乎每一张表都会有createTime和updateTime字段,spring的优秀之处在于只要用几个注解,就帮我们解决该类问题,具体实现: 1,实体类添加注解: @EntityL ...
- Oracle查看数据库表的创建时间
select OBJECT_NAME, CREATED from DBA_OBJECTS obj, USER_TABLES tab where obj.OBJECT_NAME = tab.TABLE_ ...
- Linux 如何用命令查看binlog文件的创建时间
目录 背景 分析 方法 注意 背景 MySQL在26日 16:23:49产生了大量的慢查询,在这段时间内,binlog文件刷新的很快(查看慢日志是mysql DML并发比较多),想知道写完一个binl ...
- mysql表的创建、查看、修改、删除
一.创建表 创建表前先使用use 数据库名进入某一个数据库,创建表语句的格式如下: create table 表名称 ( 列名1 列的数据类型 [约束], 列名2 列的数据类型 [约束], 列名2 列 ...
随机推荐
- 【Unity3D】相机
1 简介 相机用于渲染游戏对象,每个场景中可以有多个相机,每个相机独立成像,每个成像都是一个图层,最后渲染的图层在最前面显示. 相机的属性面板如下: Clear Flags:设置清屏颜色,Sk ...
- 使用 MSYS2 编译 exe 可执行程序
MSYS2 是一个在 Windows上 运行的软件环境,它提供了一种在 Windows 上使用 GNU 工具链的方式,包括 GCC 编译器和 GNU Make 构建系统. 在 MSYS2 中,你可以使 ...
- 编译静态库遇到的 LNK2019 报错
前文提到了 CMake 学习 文末基本涵盖了我遇到的编译问题,但是在得到一个编译好的 .lib 文件后,还需要放到项目中引用成功后才算真正的完成静态库的编译 嗯,我之所以说这些是因为我在项目中链接静态 ...
- duilib 入坑
记录 duilib 开发遇到的问题 当前最新的 duilib 版本更新是在 2019-4-28-2,从 vcpkg 查询得知 我的机器是 windows 10,vs2019 我是从 duilib 库 ...
- 信捷电气 - C++工程师面试题(社招:3-5年工作经验)
1. char i = 1; printf("%d",i); // char字节用printf以整数型打印出来 2. int (*a[10])int a[10]是函数指针数组 ...
- [BUUCTF][Web][ACTF2020 新生赛]Include 1
打开靶机对应的url 显示一个tips 超链接 点击访问超链接,对应Url为 http://469398f2-5677-4270-a4a4-55c5e4a7504a.node4.buuoj.cn:81 ...
- FileBeat简单使用
简介 首先要了解ELK架构 这种结构因为需要在各个服务器上部署 Logstash,而它比较消耗 CPU 和内存资源,所以比较适合计算资源丰富的服务器,否则容易造成服务器性能下降,甚至可能导致无法正常工 ...
- 统信UOS系统开发笔记(一):国产统信UOS系统搭建开发环境之虚拟机安装
前言 开发国产应用,需要使用到统信UOS系统,之前已经开发过国产银河麒麟V4.V7和V10版本了,本次新项目使用到统信UOS,记录UOS虚拟机安装流程,方便快捷进行相关开发工作. 提前准备 V ...
- 目标检测 - VOC - xml标注格式
目标检测 - VOC - xml标注格式 相对其他计算机视觉任务,目标检测算法的数据格式更为复杂.为了对数据进行统一的处理,目标检测数据一般都会做成VOC或者COCO的格式. XML标注格式 < ...
- 【LeetCode贪心#06】加油站(股票买卖变种)
加油站 力扣题目链接(opens new window) 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 ...