首页 > 数据库 >PGSQL 查询哪些表要索引,查表行数

PGSQL 查询哪些表要索引,查表行数

时间:2023-04-25 16:34:46浏览次数:39  
标签:查表 idx scan PGSQL 索引 relname pg 表要 size

转自:(96条消息) PostgreSQL index monitor——监控哪些表需要创建索引_foucus、的博客-CSDN博客

在数据库的使用过程中,可能某些表随着数据量的增大而因为没有索引仍旧使用的全表扫描,我们可以使用下列脚本来监控哪些大表上需要创建索引。

1、监控哪些表需要创建索引

SELECT 
    relname AS TableName
    ,seq_scan-idx_scan AS TotalSeqScan
    ,CASE WHEN seq_scan-idx_scan > 0 
        THEN 'Missing Index Found' 
        ELSE 'Missing Index Not Found' 
    END AS MissingIndex
    ,pg_size_pretty(pg_relation_size(relname::regclass)) AS TableSize
    ,idx_scan AS TotalIndexScan
FROM pg_stat_all_tables
WHERE schemaname='public'
    AND pg_relation_size(relname::regclass)>1000000  --单位字节
ORDER BY 2 DESC;

2、监控索引大小及使用情况

使用下面脚本来查看索引的大小和索引扫描的行数等信息。

SELECT
    pt.tablename AS TableName
    ,t.indexname AS IndexName
    ,pc.reltuples AS TotalRows
    ,pg_size_pretty(pg_relation_size(quote_ident(pt.tablename)::text)) AS TableSize
    ,pg_size_pretty(pg_relation_size(quote_ident(t.indexrelname)::text)) AS IndexSize
    ,t.idx_scan AS TotalNumberOfScan
    ,t.idx_tup_read AS TotalTupleRead
    ,t.idx_tup_fetch AS TotalTupleFetched
FROM pg_tables AS pt
LEFT OUTER JOIN pg_class AS pc 
    ON pt.tablename=pc.relname
LEFT OUTER JOIN
( 
    SELECT 
        pc.relname AS TableName
        ,pc2.relname AS IndexName
        ,psai.idx_scan
        ,psai.idx_tup_read
        ,psai.idx_tup_fetch
        ,psai.indexrelname 
    FROM pg_index AS pi
    JOIN pg_class AS pc 
        ON pc.oid = pi.indrelid
    JOIN pg_class AS pc2 
        ON pc2.oid = pi.indexrelid
    JOIN pg_stat_all_indexes AS psai 
        ON pi.indexrelid = psai.indexrelid 
)AS T
    ON pt.tablename = T.TableName
WHERE pt.schemaname='public'
ORDER BY 1;

 

 

--估算表中行业
SELECT reltuples::bigint AS EstimatedCount
FROM   pg_class
WHERE  oid = 'public.TableName'::regclass;

--列出所有表中的行数

SELECT 
    schemaname
    ,relname
    ,n_live_tup AS EstimatedCount 
FROM pg_stat_user_tables 
ORDER BY n_live_tup DESC;

 

标签:查表,idx,scan,PGSQL,索引,relname,pg,表要,size
From: https://www.cnblogs.com/lrzy/p/17353032.html

相关文章

  • MySQL 备忘清单_开发速查表分享
    MySQL备忘清单MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、......
  • Netstat 备忘清单_开发速查表分享
    Netstat备忘清单netstat命令是一个命令行工具,可以在Windows、Linux、MacOSX等操作系统中使用,它可以帮助用户查看本地主机的网络连接情况。它可以报告出本地主机的TCP/IP协议统计信息,包括活动的TCP连接,UDP端口,所有的接口信息,以及活动的网络连接等。netstat命令可以用来查看本......
  • pgsql根据日期查询错误:timestamp without time zone >= character varying
    最近工作中使用到pgsql数据库,使用日期传参查询时提示Causedby:org.postgresql.util.PSQLException:错误:操作符不存在:date>=charactervarying错误主要原因就是pgsql使用string类型参数去查询的话不会自动进行转换,而mysql并没有这种问题。解决方式也很简单,我们将字符串类......
  • NGINX 备忘清单_开发速查表分享
    NGINX备忘清单Nginx(enginex)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。Nginx是一款轻量级的Web服务器/反向代......
  • 服务器安装pgsql14.2
    1.0wgethttps://ftp.postgresql.org/pub/source/v14.2/postgresql-14.2.tar.gz--no-check-certificate2.0tar-zxvfpostgresql-14.2.tar.gz3.0mvpostgresql-14.2/postgresql4.0cdpostgresql5.0./configure--prefix=/usr/local/postgresql【在执行./configu......
  • mac 环境下 启动postgrep 报错 "/tmp/.s.PGSQL.5432" failed: No such file or direc
    报错截图:解决方案:使用重新启动,postgrep服务:brewservicesrestartpostgresql......
  • PostgreSQL 备忘清单_开发速查表分享
    PostgreSQL备忘清单PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标......
  • ps 备忘清单_开发速查表分享
    ps命令速查备忘清单Linux我们提供了一个名为ps的实用程序,用于查看与系统上的进程相关的信息,它是ProcessStatus的缩写这份ps命令备忘清单的快速参考列表,包含常用选项和示例。入门,为开发人员分享快速参考备忘单。开发速查表大纲入门语法示例查看系统上的每个......
  • Pytorch 备忘清单_开发速查表分享
    Pytorch备忘清单Pytorch是一种开源机器学习框架,可加速从研究原型设计到生产部署的过程,备忘单是由IT宝库整理的Pytorch开发速查备忘清单为您提供了Pytorch基本语法和初步应用参考入门,为开发人员分享快速参考备忘单。开发速查表大纲入门介绍认识Pytorch创建一个......
  • PgSQL常用操作
    1、重置表索引REINDEXINDEXindex_name;//重置单个索引REINDEXTABLEtable_name;//重置整个表的索引2、查询父表的分区表selectc.relnamefrompg_classcjoinpg_inheritspionpi.inhrelid=c.oidjoinpg_classc2onc2.oid=pi.inhparentwherec2.relname='父表名'......