暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss每日一练第 10 天-表空间进阶

原创 Carton 2022-12-03
673

前面已经对表空间的基本内容进行了总结,本文在此基础上加入几个进阶的操作

1. 默认表空间的地址

pg_default 用来存储非共享系统表、用户表、用户表index、临时表、临时表index、内部临时表的默认表空间。对应存储目录为实例数据目录下的base目录。

pg_global 用来存放共享系统表的表空间。对应存储目录为实例数据目录下的global目录。

5170a733777bc03b92723201eee86be52b627b0d5ecd26991aa31740193ab5d7.png

2.pg_class

PG_CLASS系统表存储数据库对象信息及其之间的关系。
常见字段

  • oid: 行标识符(隐含属性,必须明确选择)
  • relname:表、索引、视图等对象的名称。
  • relowner:关系所有者
  • reltablespace: 这个关系存储所在的表空间。如果为零,则意味着使用该数据库的缺省表空间。如果关系在磁盘上没有文件,则这个字段没有什么意义。
  • relpages:以页(大小为BLCKSZ)为单位的此表在磁盘上的大小,它只是优化器用的一个近似值。
  • relkind:
    • r 表示普通表。
    • i 表示索引。
    • v 表示视图。

3.三个函数

pg_size_pretty(bigint)

描述:将以64位整数表示的字节值转换为具有单位的易读格式。
返回值类型:text

pg_size_pretty(numeric)

描述:将以数值表示的字节值转换为具有单位的易读格式。
返回值类型:text

pg_relation_size(oid)

描述:指定OID代表的表或者索引所使用的磁盘空间。
返回值类型:bigint

pg_tablespace_size(name/oid)

描述:指定名称的表空间使用的磁盘空间。
返回值类型:bigint
pg_tablespace_size接受一个数据库的OID或者名称,然后返回该对象使用的全部磁盘空间。

4.每日sql语句

--with as 可以把它当作一个临时视图 with objectInDefaultTS as ( select relname, relkind, relpages,pg_size_pretty(pg_relation_size(a.oid)), reltablespace,relowner from pg_class a where a.relkind in ('r', 'i') and reltablespace='0' ) select * from objectInDefaultTS where relname not like 'pg_%' and relname not like 'gs_%' and relname not like 'sql_%' order by relpages desc;
复制

查看数据库在默认表空间下有哪些对象

--执行下面的SQL语句,查询数据库studentdb的非默认表空间t_tbspace下有哪些对象: select relname,relkind,relpages,pg_size_pretty(pg_relation_size(a.oid)), reltablespace,relowner from pg_class a, pg_tablespace tb where a.relkind in ('r', 'i') and a.reltablespace=tb.oid and tb.spcname='t_tbspace' order by a.relpages desc;
复制

查看数据库在非默认表空间下有哪些对象

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

目录
  • 1. 默认表空间的地址
  • 3.三个函数
  • 4.每日sql语句