Postgresql统计表名表行数表注释表大小

偏执的太偏执、 2023-02-22 10:56 84阅读 0赞

统计表属性

目录pg_class记录表和几乎所有具有列或者像表的东西。这包括索引(但还要参见pg_index)、序列、视图、物化视图、组合类型和TOAST表,参见relkind。下面,当我们提及所有这些类型的对象时我们使用”关系”。并非所有列对于所有关系类型都有意义。

这里介绍几个关键列:




































名称 类型 注释
oid oid 行标识符(隐藏属性,必须被显式选择才会显示)
relname name 表、索引、视图等的名字
relowner oid 关系的拥有者
reltuples float4 表中的行数。这只是一个由规划器使用的估计值。它被VACUUM、ANALYZE以及一些DDL命令(如CREATE INDEX)所更新。

详细列说明请参见:
http://postgres.cn/docs/9.6/catalog-pg-class.html

根据下面SQL语句查询表命名空间、表名称、对象类型、表大小、表行数、表注释等:

  1. SELECT
  2. n.nspname as "Schema",
  3. c.relname as "Name",
  4. CASE c.relkind
  5. WHEN 'r' THEN 'table'
  6. WHEN 'v' THEN 'view'
  7. WHEN 'm' THEN 'materialized view'
  8. WHEN 'i' THEN 'index'
  9. WHEN 'S' THEN 'sequence'
  10. WHEN 's' THEN 'special'
  11. WHEN 'f' THEN 'foreign table' END as "Type",
  12. pg_catalog.pg_get_userbyid(c.relowner) as "Owner",
  13. pg_catalog.pg_size_pretty(pg_catalog.pg_table_size(c.oid)) as "Size",
  14. pg_catalog.obj_description(c.oid, 'pg_class') as "Description",
  15. c.reltuples as "rows"
  16. FROM pg_catalog.pg_class c
  17. LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
  18. WHERE c.relkind IN ('r','s','')
  19. AND n.nspname <> 'pg_catalog'
  20. AND n.nspname <> 'information_schema'
  21. AND n.nspname !~ '^pg_toast'
  22. ORDER BY 1,2 limit 10;
  23. --==============================================
  24. -- 查询结果显示如下:
  25. postgres#
  26. Schema | Name | Type | Owner | Size | Description | rows
  27. --------+-------------------------+-------+----------+---------+-------------+-------
  28. ab | ab_testtest_type | table | postgres | 88 kB | 测试表1 | 675
  29. ab | ab_testtest_type_copy | table | postgres | 88 kB | 测试表2 | 675
  30. kfb | abcd | table | postgres | 16 kB | 测试表3 | 0
  31. kfb | abcd_efhg | table | postgres | 448 kB | 测试表4 | 677
  32. kfb | abcd_efhg_copy | table | postgres | 440 kB | 测试表5 | 677
  33. kfb | abcd_efghijk_lomno | table | postgres | 8752 kB | 测试表6 | 60881
  34. kfb | abcd_efghijk_lomno_copy | table | postgres | 8752 kB | 测试表7 | 60881
  35. kfb | zhaocheng | table | postgres | 16 kB | 测试表8 | 0
  36. tt | chenzhaocheng | table | postgres | 1408 kB | 测试表9 | 9397
  37. tt | cheng | table | postgres | 824 kB | 测试表10 | 4317
  38. (10 rows)

发表评论

表情:
评论列表 (有 0 条评论,84人围观)

还没有评论,来说两句吧...

相关阅读

    相关 PostgreSQL 统计

    在很多情况下我们需要知道一个表的记录数有多少。如果你发现你有这样的需求,你还应该问问这样的统计的精确度到底又多高。如果你在做会计报表,你需要非常的精确。如果你做一个网页的记数器