注册
如何通过 disql 抓取数据库中的活动会话 sql
技术分享/ 文章详情 /

如何通过 disql 抓取数据库中的活动会话 sql

孤独的熊猫 2026/02/06 549 4 0

【问题描述】

因为网络限制无法通过管理工具连接数据库,在只能通过 disql 连接数据库的情况下,如何抓取数据库中的正在运行的活动会话 sql,并分析其执行计划。除了查看 logcommit 还有什么办法?

【问题解决】

可以通过 spool 命令将查询结果输出到指定文件。

Copy
./disql SYSDBA/’“密码”’
SQL>spool ‘/home/dmdba/SQL_TEXT.txt’; —控制台打印查询结果,并将查询结果输出到指定文件/home/dmdba/SQL_TEXT.txt
SQL>select sql_text,count(*) from v$sessions where state=‘ACTIVE’ group by sql_text order by 2;
SQL>spool off ;----关闭spool
注意
只有 SPOOL OFF 之后,才能在输出文件中看到完整的输出内容。 最后将想要查看 sql 的执行计划 ,在 sql 前加上 EXPLAIN 再执行即可查看该 sql 的执行计划。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服