EsgynDB SQL统计模式下各对象个数

EsgynDB数据库把对象的元数据信息保存在"_MD_"这个模式下,所有对象信息,包括表、索引、视图、序列、存储过程、触发器、函数等均能在元数据表中找到对应信息。
"_MD_"这个模式下有一张关键表OBJECTS,每个对象有一个唯一的OBJECT_ID,通过此OBJECT_ID,关联不同的元数据表可以获取表不同的信息,如列信息、主键信息、索引信息等等。
OBJECTS表中有一个字段OBJECT_TYPE表示对象类型, 我们可以通过此对象类型字段查询每个对象是哪种对象。
这里就分享一条SQL语句来查询某个模式下各对象的个数,

SELECT
 CASE
  WHEN object_type = 'BT' THEN '表'
  WHEN object_type = 'IX' THEN '索引'
  WHEN object_type = 'UC' THEN '唯一约束'
  WHEN object_type = 'UR'
  AND b.text LIKE 'CREATE FUNCTION%' THEN '函数'
  WHEN object_type = 'UR'
  AND b.text LIKE 'CREATE PROCEDURE%' THEN '存储过程'
  WHEN object_type = 'TR' THEN '触发器'
  WHEN object_type = 'VI' THEN '视图'
  WHEN object_type = 'SG' THEN '序列'
  WHEN object_type = 'PK' THEN '主键'
  ELSE '其它'
 END
 ,
 COUNT(*)
FROM
 "_MD_".objects a
LEFT JOIN
 (
  SELECT
   text_uid
   , text
  FROM
   "_MD_".text
  WHERE
   text LIKE 'CREATE%')b
 ON a.object_uid = b.text_uid
WHERE
 schema_name = 'AFA_SIT'
 AND object_name NOT IN
 (
  'SB_HISTOGRAMS'
  , 'SB_HISTOGRAM_INTERVALS'
  , 'SB_PERSISTENT_SAMPLES')
GROUP BY
 1;

输出结果如下所示,

视图	103
表	531
主键	484
存储过程	36
其它	1
唯一约束	3
索引	178
序列	107
函数	1
触发器	5
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值