Oracle inactive session 与 sql_text的问题

rottenapple 2011-02-17 09:27:53
select a.sid,a.serial#,a.username,a.osuser,a.machine,a.program,a.logon_time,a.status,b.sql_text
from v$session a, v$sql b where a.sql_address=b.address(+) and a.username ='SSO'

用这种方式,我得到目前的数据库连接状态,发现其中有几十个inactive session的sql_text都是同一个sql。我想知道的是这是不是代表这个sql语句的连接关闭有问题呢?为什么没有其它的sql语句出现?不太清楚我上面的sql脚本是不是正确的。有人说是因为那条sql被执行最多次的原因,但是说不通为什么几十个session 的sql_text都是相同的。

inactive session什么时候会被oracle自动关闭呢?如何减少它的数量?

高手给帮个忙把.
...全文
205 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
minitoy 2011-02-17
  • 打赏
  • 举报
回复
sql_address存储的是当前正在处理的sql地址.有可能session已经处理完sql,现在处于idle状态.那么sql_address会是'00',prev_sql_address存储了刚才执行的sql_address,所以要decode下
rottenapple 2011-02-17
  • 打赏
  • 举报
回复
为什么要decode呢?
我的问题是什么原因呢?
minitoy 2011-02-17
  • 打赏
  • 举报
回复
试了下好像可以,不过也要像上面一样decode一下.
用v$session的decode(sql_address,'00',PREV_SQL_ADDR,sql_address)等于v$sql的address来关联的.

minitoy 2011-02-17
  • 打赏
  • 举报
回复
一般是用v$session的decode(sql_hash_value,null,pre_hash_value,sql_hash_value)等于v$sql的hash_value来关联的.
sql_address也可以关联么?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧