对于习惯了ORACLE运维的DBA们,在进行SQL优化以及问题排查的时候,不可避免地会用到SQL_ID,从ORACLE到PostgreSQL过渡的时候,可能在分析问题的时候第一反应可能还是想获取到对应SQL的SQL_ID,然后根据SQL_ID去获取执行计划从而进行分析。 而PostgreSQL与ORACLE类似的SQL_ID功能,是PostgreSQL-14版本从pg_stat_statements插件的QUERY_ID计算模块剥离到内核中, 使得内部可以直接使用query_id功能。
一、ORACLE从Wait Events到SQL_ID
在ORACLE数据库遇到一些性能问题的时候,我们通常会查看日志,查看等待事件,查看数据库,服务器资源使用情况等等。
++其中等待事件是一个标志性的指标,不管是直接在数据库里查看等待事件,还是通过生成AWR、ASH报告去查看,究其根本,都是为了分析等待事件所对应的数据库行为,在发生性能问题或者故障的时候,很有可能伴随着某个等待事件的出现或者数量飙升,亦或是等待事件在DB time占了很大的比重++。 
比如出现了gc cr multi block request等待事件,代表可能存在对数据块的请求是跨实例的全表扫描和全索引扫描。又或者出现enq:TX - row lock contention等待事件,可能
|