《sql调优和性能监控利器sql monitor》提到sql monitor,通过v$sql_monitor视图找到对应的sql,其中有个字段是status,

包括这些值:
QUEUED – SQL语句正在排队EXECUTING – SQL语句仍在执行中DONE (ERROR) – 执行终止并出现错误DONE (FIRST N ROWS) – 应用程序在获取所有行之前终止执行DONE (ALL ROWS) – 执行终止并获取所有行DONE – 执行终止(并行执行)
其中有一个DONE (FIRST N ROWS),如果熟悉CBO优化器的朋友,可能看着眼熟,可以推测出它的意思应该是“执行完成,但是仅获取前N行”。
模拟一下,执行这条语句,正常完成:
SQL> select /*+ monitor */ count(*) from test; COUNT(*)---------- 72377
此时v$sql_monitor显示的DONE (ALL ROWS):
火山写作
字节跳动推出的中英文AI写作、语法纠错、智能润色工具,是一款集成创作、润色、纠错、改写、翻译等能力的中英文 AI 写作助手。
105 查看详情
SQL> select username, sql_id, sql_text, status from v$sql_monitor where sql_text like '%test%' and sql_text not like '%v$sql_monitor%';USERNAME SQL_ID SQL_TEXT STATUS--------------- ------------- ------------------------------------------------------- -------------------BISAL d9jb07dq0n2ny select /*+ monitor */ count(*) from test DONE (ALL ROWS)
我们尝试在执行过程中按Ctrl+C强制中断:
SQL> select /*+ monitor */ * from testCtrl+C,中断执行
此时看到,v$sql_monitor的status显示DONE (FIRST N ROWS),表示这条SQL只是执行了前N行:
SQL> select username, sql_id, sql_text, status from v$sql_monitor where sql_text like '%test%' and sql_text not like '%v$sql_monitor%';USERNAME SQL_ID SQL_TEXT STATUS--------------- ------------- ------------------------------------------------------- -------------------BISAL aysw7ujnub4vr select /*+ monitor */ * from test DONE (FIRST N ROWS)BISAL d9jb07dq0n2ny select /*+ monitor */ count(*) from test DONE (ALL ROWS)
因为最近在做数据相关的工作,所以对这些有点儿敏感,同样的词虽然用到了不同的功能,但是表达的含义还是比较明确,相对比较标准,其实这些就在潜移默化中提升了数据质量,让系统的使用更加规范、更易理解。
以上就是SQL Monitor中status的作用的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/451713.html
微信扫一扫
支付宝扫一扫