我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PostgreSQL VS oracle 之 动态性能视图 vs 标准统计视图

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PostgreSQL VS oracle 之 动态性能视图 vs 标准统计视图

PostgreSQL VS oracle 之 动态性能视图 vs 标准统计视图

查看postgresql 常用 性能视图

 select relname from pg_class where relname like "%pg_stat%"

PG  oracle  说明 使用
 pg_stat_statements v$sql .pid字段直接显示了该会话在操作系统上的进程ID,这样通过top命令看到的繁忙操作系统进程,可以很简单地通过该字段定位,来作进一步的诊断。在Oracle中则需要通过V$SESSION和V$PROCESS视图Join才可以  
 pg_statistic      
 pg_statistic_ext_oid_index      
 pg_statistic_ext_name_index      
 pg_statistic_ext_relid_index      
 pg_statistic_relid_att_inh_index      
 pg_statio_all_indexes      
 pg_statistic_ext      
 pg_stats      
 pg_stat_all_tables all_tables 一个数据库下所有的表  
 pg_stat_sys_tables   所有的系统表  
 pg_stat_user_tables user_tables 所有用户创建的表 通过查询pg_stat_user_tables,可以基本清除哪些表的全表扫描次数较多,表中DML哪种操作多,也可以了解垃圾数据的数量。
 pg_stat_all_indexes all_indexes 显示了读取过多少个数据块,这些读取中有多少数据块是直接命中缓存的 可以知道当前哪些索引频繁使用,哪些是无效索引。无效索引可以删除掉,减少磁盘空间的使用和提升insert、delete、update的性能。
 pg_stat_sys_indexes      
 pg_stat_user_indexes user_indexes    
       
 pg_statio_sys_indexes      
 pg_statio_all_tables     如果heap_blks_read、idx_blks_read很高,说明shared buffer较小,存在频繁从磁盘或者page cache读取到shared buffer中命中toast表的块数
       
 pg_stat_xact_all_tables   xact表示transaction,统计的是当前会话对于表操作的信息,这部分信息通常还没有更新到pg_stat_all_tables视图中。  
 pg_stat_xact_sys_tables      
 pg_stat_xact_user_tables      
 pg_statio_sys_tables      
 pg_statio_user_tables      
 pg_statio_user_indexes      
 pg_statio_all_sequences      
 pg_statio_sys_sequences      
 pg_statio_user_sequences      
       
       
 pg_stat_activity v$session .query字段直接显示了该会话正在执行的SQL或者上次执行的SQL语句文本。在Oracle中检查一个会话正在执行的SQL语句文本,则需要通过V$SESSION和V$SQL视图Join才可以  
 pg_stat_replication V$MANAGED_STANDBY
V$ARCHIVE_DEST_STATUS
在设置了复制的环境中,该视图对于每个WAL sender进程(WAL sender进程负责将本机的重做日志发送到远端复制环境)显示一条记录  
 pg_stat_wal_receiver      
 pg_stat_subscription      
 pg_stat_ssl      
 pg_stat_database DBA_TAB_MODIFICATIONS 该视图中记录了每个数据库提交了多少事务,回滚了多少事务,读了多少数据块,查询、插入、更新、删除了多少记录(在PostgreSQL中用Tuple这个奇怪的词表示跟Row相同的概念),产生过多少死锁。总之这是一个数据库级别相对很简单的统计信息。 通过pg_stat_database可以大概了解数据库的历史情况。
比如tup_returned值明显大于tup_fetched,历史SQL语句很多是全表扫描,存在没有使用索引的SQL,可结合pg_stat_statments查找慢SQL,也可结合pg_stat_user_table找全表扫描次数和行数最多的表;
通过看tup_updated很高,可以说明数据库有频繁的更新,这个时候需要关注vaccum相关的指标和长事务,如果没有及时进行垃圾回收,会引起表膨胀;
temp_files较高说明存在很多排序,hash,或者聚合这种操作,可以增大work_mem减少临时文件的产生,并且同时这些操作的性能也会有较大的提升。
 pg_stat_database_conflicts   该视图仅对于Standby数据库有效,对于每个数据库显示一条记录  
 pg_stat_user_functions      
 pg_stat_xact_user_functions      
 pg_stat_archiver V$ARCHIVE_DEST_STATUS 该视图始终只有一条记录,显示了负责一个cluster下所有数据库的重做日志(PostgreSQL中称为WAL file)归档进程的统计信息,记录项比较简单。last_archived_wal和last_archived_time分别显示了最近一次归档的文件名和最近一次归档时间。类似于Oracle中的V$ARCHIVE_DEST_STATUS。由于PostgreSQL中的归档实现实在是太简单了,所以几乎跟Oracle没有太多可比性。  
 pg_stat_bgwriter V$SYSSTAT 显示了负责一个cluster下所有数据库的后台写进程的统计信息,也就是在操作系统中看到的postgres: writer process。该进程每隔bgwriter_delay初始化参数定义的间隔(默认200ms)会唤醒,将Buffer Pool中修改过的页写入到磁盘。跟Oracle的后台进程DBWR非常相仿。 可以判断checkpoint以及max_wal_size是否合理
 pg_stat_progress_vacuum      

 

参考:https://cloud.tencent.com/developer/article/1447907

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PostgreSQL VS oracle 之 动态性能视图 vs 标准统计视图

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PostgreSQL VS oracle 之 动态性能视图 vs 标准统计视图

查看postgresql 常用 性能视图  select relname from pg_class where relname like "%pg_stat%" PG  oracle  说明 使用  pg
PostgreSQL VS oracle 之 动态性能视图 vs 标准统计视图
2017-03-12

编程热搜

目录