热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pgsql使用积累系列_表空间占用分析过程

写在前面,这里只记录了部分。若想看完整版的可参考官网。这里分享下问题搜索过程分享。性能分析必然离不开系统函数。像pg这样成熟的产品假设这一套是完善的(不完善也胜过我们大多数人)
写在前面,这里只记录了部分。若想看完整版的可参考官网。

这里分享下问题搜索过程分享。性能分析必然离不开系统函数。像pg这样成熟的产品假设这一套是完善的(不完善也胜过我们大多数人),对于分析的视图或者脚本如果我知道了一个,那么根据局部相关性原理,相似的功能很可能都在一起。思考就讲到这。

接着打开百度搜索postgresql docs。打开官网文档,根据已知的功能函数/表/视图去找未知的功能,如我知道pg_table_size,就可以按照下图搜索,当然我只是截出了搜索的位置,点search的结果并不是这个页面。这里只是想强调一点如何利用官网查文档,而不用在百度反复找同样的东西浪费时间,当然如果你什么都不知道,还是要通过百度或者其他搜索引擎找到一个入口的。



-- 查看pg活跃进程
select pid,query_start,wait_event_type,wait_event,query from pg_stat_activity where state='active'

-- 查看单表大小,根据官网信息可知pg_table_size 由表大小+TOAST大小+free space map(维护heap和(非hash索引)索引的映射关系)+visibility map(跟vacuum有关系,维护heap之间的关系,)可以通过上面提到的查找文档方法,根据关键字 free space map和visibility map到官网查到,为避免误导别人,也误导自己就不做过多的翻译了。
-- Disk space used by the specified table, excluding indexes (but including TOAST, free space map, and visibility map)
-- 用友好的方式查看表大小。也可以用pg_relation_size('relationName') relation可以包括index,table等
-- pg_total_relation_size() 查看表相关的所有relation占用空间
select pg_size_pretty(pg_table_size('crm_iope.crm_ex_order_detail'));

-- 查看表的实际存储位置及占用空间
SELECT oid,pg_relation_filepath(177130), relpages FROM pg_class WHERE relname = 'crm_ex_order_detail';

-- 查看用户表信息,根据表名和schema名找到relid
select * from pg_stat_user_tables where relname = 'crm_ex_order_detail' and schemaname='crm_iope'

-- 根据用户表id,查看对应用户表的Toast(pg存储优化技术,对于大数据效果更好)表oid
select utbl.relid,pc.relname,pc.relfilenode,pc.reltoastrelid from pg_stat_user_tables utbl, pg_class pc 
where utbl.schemaname='crm_iope' and utbl.relname='crm_ex_order_detail'
and utbl.relid = pc.oid ;

-- 查看toast表元数据信息,用户表pg_stat_user_tables查不到
select * from pg_stat_all_tables where relname = 'pg_toast_177130'

-- 查看toast数据信息
select * from pg_toast.pg_toast_177130

-- VACUUM Progress Reporting,优化执行计划进程报告,对于增删改操作,操作完成后,pg会默认开启执行计划优化方案,以提高查询性能。
select * from pg_stat_progress_vacuum;

-- 查询toast占用空间,结合具体的用户表才有意义
SELECT relname, relpages
FROM pg_class,
(SELECT reltoastrelid
FROM pg_class
WHERE relname = 'crm_ex_order_detail') AS ss
WHERE (oid = ss.reltoastrelid OR
oid = (SELECT indexrelid
FROM pg_index
WHERE indrelid = ss.reltoastrelid))
and oid = 242295
ORDER BY relname;

-- 查询索引暂用空间,结合表才有意义
SELECT c2.relname, c2.relpages
FROM pg_class c, pg_class c2, pg_index i
WHERE c.relname = 'crm_ex_order_detail' AND
c.oid = i.indrelid AND
c2.oid = i.indexrelid and
c.oid = 177130
ORDER BY c2.relname;

-- 查看最近使用的表/或索引使用的情况
SELECT oid,relname, relpages
FROM pg_class
ORDER BY relpages DESC;

vacuumdb: 清理vacuum 产生的数据。在频繁insert、update、delete的情况下这个值会很大,很耗磁盘。
而且这个值是pg_table_size的一部分。对单表操作影响很大
如果安装了postgresql的话在 bin目录下可以查看有哪些功能(包括vacuumdb),windows环境下可以通过cmd切换到bin目下,
然后执行vacuumdb -?或者--help查看用法,其他命令(如备份)的使用方法查询都是一样的。


推荐阅读
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了一些好用的搜索引擎的替代品,包括网盘搜索工具、百度网盘搜索引擎等。同时还介绍了一些笑话大全、GIF笑话图片、动态图等资源的搜索引擎。此外,还推荐了一些迅雷快传搜索和360云盘资源搜索的网盘搜索引擎。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
author-avatar
鲁弗斯ll
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有