【问题描述】
因为网络限制无法通过管理工具连接数据库,在只能通过 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 的执行计划。
文章
阅读量
获赞
