您是否可以为v$session
提供任何脚本?我似乎遇到了一个问题,我的oracle活动会话已经填满了。这是我做的时候
SELECT * FROM V$SESSION WHERE STATUS = 'ACTIVE'
我的问题是,我需要一个可以确定连接持续多长时间以及持有者的脚本?我想知道我在哪里得到它。如果可能的话,如果我可以自动拨打这些会话,那将是非常好的。我想知道自上次命令完成以来他们被关押了多久。另外需要注意的是,没有与我正在看到的SQL会话相关联的当前语句。
答案 0 :(得分:0)
我不确定我到底知道你在找什么。
“连接保持多长时间”是什么意思呢?对于处于活动状态的会话,LAST_CALL_ET
中的V$SESSION
列将指示自上次呼叫以来的秒数。 LOGON_TIME
中的V$SESSION
列将显示最初创建数据库会话的时间。您在寻找不同的指标吗?如果是这样,您能更详细地描述指标吗?
“谁持有它”的意思究竟是什么意思? USERNAME
的{{1}}列告诉您Oracle用户名,V$SESSION
告诉您打开会话的客户端计算机上的操作系统用户。您在寻找不同的指标吗?如果是这样,您能更详细地描述该指标吗?例如,您是否在三层应用程序中查找最终用户的名称?
我不确定“自动拨号”在这种情况下是什么意思。
“自上一次命令完成以来,他们持有多长时间”不同于“连接持续多长时间”?如果是这样,听起来就像是在描述OSUSER
和LAST_CALL_ET
之间的区别。
答案 1 :(得分:0)
我猜你有一个没有正确关闭连接的应用程序,以确定罪魁祸首将原始脚本修改为:
SELECT username,
program,
terminal,
COUNT (*)
FROM v$session
WHERE status = 'ACTIVE'
GROUP BY username,
program,
terminal
ORDER BY COUNT (*) DESC
这应该有助于您确定连接的使用位置。