



查看当前oracle 节点的总会话数:SQL> select count(*) from v$session;COUNT(*)----------247
查看当前oracle 节点的活跃会话数:SQL> select count(*) from v$session where status='ACTIVE'2 and program ='JDBC Thin Client';COUNT(*)----------2
查看所有节点的总会话数:SQL> select count(*) from gv$session;COUNT(*)----------364
查看所有节点的活跃会话数:SQL> select count(*) from gv$session where status='ACTIVE'2 and program ='JDBC Thin Client';COUNT(*)----------5
聪明的读者可能看到了,当前节点的会话数 查询v$session 视图,全部节点的会话数 查询gv$session 视图.
查询某个pdb 所有节点的总会话数:SQL> select count(*) from gv$session where con_id=3;COUNT(*)----------1066
查询某个pdb所有节点的活跃会话数:SQL> select count(*) from gv$session where con_id=3and status='ACTIVE' and program='JDBC Thin Client';COUNT(*)----------4

别怕,答案马上揭晓
SQL> select sql_id,count(*) from gv$session where status='ACTIVE'and program='JDBC Thin Client'group by sql_id order by 2;SQL_ID COUNT(*)------------- ----------9k5k3sdk407tn 1dnrd7rhdg834n 1
拿到sql_id 后,事情就简单多了
SQL> select sql_text from v$sqltext where sql_id='dnrd7rhdg834n'order by piece;SQL_TEXT----------------------------------------------------------------select * from xxxx 此处省略一万字,额,SQL 太长了。。。如果是RAC环境,查询v$sqltext查不出的话,请查询gv$sqltext
对于pdb,查询sql_id的时候在where 后面加上con_id 就可以了。
做监控的话,推荐把以上的查询语句写在python或者shell 里面,30秒或者1分钟执行一次即可。
好了,今天的分享到此结束了,亲爱的读者,你学会了么
文章转载自数据库之美,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




