当前位置: 首页 > news >正文

oracle 会话管理

会话管理
 
1:查看当前所有用户的会话(SESSION):
SELECT * FROM V S E S S I O N W H E R E U S E R N A M E I S N O T N U L L O R D E R B Y L O G O N T I M E , S I D ; 其中 O r a c l e 内部进程的 U S E R N A M E 为空  2 :查看当前用户的所有 S E S S I O N : S E L E C T ∗ F R O M V SESSION  WHERE USERNAME IS NOT NULL ORDER BY LOGON_TIME , SID; 其中Oracle内部进程的USERNAME为空   2:查看当前用户的所有SESSION: SELECT * FROM V SESSION WHEREUSERNAMEIS NOT NULLORDER BYLOGONTIME,SID;其中Oracle内部进程的USERNAME为空 2:查看当前用户的所有SESSIONSELECTFROMVSESSION
WHERE USERNAME = USER
ORDER BY LOGON_TIME, SID;
 
3:查看当前窗口/当前用户的会话信息
SELECT SID, SERIAL#, STATUS FROM V S E S S I O N W H E R E A U D S I D = U S E R E N V ( ′ S E S S I O N I D ′ ) ; 4 :查看所有 A C T I V E 会话 ( 活动会话 ) S E L E C T ∗ F R O M V SESSION WHERE AUDSID=USERENV('SESSIONID');   4:查看所有ACTIVE会话(活动会话) SELECT * FROM V SESSION WHEREAUDSID=USERENV(SESSIONID); 4:查看所有ACTIVE会话(活动会话)SELECTFROMVSESSION 
WHERE USERNAME IS NOT NULL AND STATUS=‘ACTIVE’
ORDER BY LOGON_TIME, SID;
 
5:查看当前会话的ID可以通过如下脚本:
SELECT * FROM VKaTeX parse error: Expected 'EOF', got '#' at position 66: …S.SID, S.SERIAL#̲ FROM VPROCESS P
INNER JOIN V$SESSION S ON P.ADDR = S.PADDR
WHERE S.AUDSID=USERENV(‘SESSIONID’);
 
6:查看数据库允许最大会话数
SQL> SHOW PARAMETER SESSIONS;
 
NAME                                 TYPE        VALUE


java_max_sessionspace_size           integer     0
java_soft_sessionspace_limit         integer     0
license_max_sessions                 integer     0
license_sessions_warning             integer     0
logmnr_max_persistent_sessions       integer     1
sessions                             integer     225
shared_server_sessions               integer    
 
 
SQL> SELECT NAME, TYPE, VALUE FROM V P A R A M E T E R W H E R E N A M E L I K E ′ s e s s i o n N A M E T Y P E V A L U E − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − s e s s i o n s 3 225 s e s s i o n c a c h e d c u r s o r s 3 20 s e s s i o n m a x o p e n f i l e s 3 107 :查看曾经的最大会话数:  S Q L > S Q L > S E L E C T S E S S I O N S M A X , S E S S I O N S W A R N I N G , S E S S I O N S C U R R E N T , S E S S I O N S H I G H W A T E R 2 F R O M v PARAMETER WHERE NAME LIKE 'session%';   NAME                       TYPE                 VALUE ---------                 ----------             ----------- sessions                          3                225 session_cached_cursors            3                20 session_max_open_files            3                10 7:查看曾经的最大会话数:   SQL> SQL> SELECT SESSIONS_MAX,SESSIONS_WARNING,SESSIONS_CURRENT,SESSIONS_HIGHWATER    2  FROM v PARAMETER WHERENAMELIKE session NAME                      TYPE                VALUE                            sessions                         3               225sessioncachedcursors           3               20sessionmaxopenfiles           3               107:查看曾经的最大会话数: SQL>SQL>SELECTSESSIONSMAX,SESSIONSWARNING,SESSIONSCURRENT,SESSIONSHIGHWATER  2 FROMvlicense;
 
SESSIONS_MAX SESSIONS_WARNING SESSIONS_CURRENT SESSIONS_HIGHWATER


0                0              512                553
SESSIONS_HIGHWATER表示曾经的最大会话数512
 
8:查询那些应用的连接数此时是多少
SELECT  B.PROGRAM , COUNT(1)
FROM V P R O C E S S A , V PROCESS A, V PROCESSA,VSESSION B
WHERE A.ADDR = B.PADDR
      AND  B.USERNAME IS NOT NULL
GROUP BY B.PROGRAM;
 
会话状态:
会话有ACTIVE、INACTIVE、KILLED、CACHED、SNIPED五个状态,一般比较常见的有ACTIVE、INACTIVE、KILLED三个状态。
 
ACTIVE   :处于此状态的会话,表示正在执行,处于活动状态。
INACTIVE :处于此状态的会话表示不是正在执行的
KILLED   :处于此状态的会话,表示出现了错误或进程被杀掉,正在回滚,当然,这个状态的会话也占用系统资源的。还有一点就是,    KILLED的状态一般会持续较长时间,如果你想快速杀掉回话,可以参考我以前的一篇文章ORACLE快速彻底Kill掉的会话
CACHED   : Session temporarily cached for use by OracleXA
SNIPED   : Session inactive, waiting on the client。 标记为SNIPED的进程被释放有两种条件:
         1、相关的terminal再一次试图登录及执行sql
         2、手动的在操作系统后台kill掉相应的spid
关于会话信息
通过如下SQL你可以查询你的每个应用程序到底在等待什么,从而针对这些信息对数据库的性能进行调整。
COL USERNAME FOR A12;
COL PROGRAM  FOR A32;
COL EVENT    FOR A26;
SELECT S.USERNAME
      ,S.PROGRAM
      ,S.STATUS
      ,SE.EVENT
      ,SE.TOTAL_WAITS
      ,SE.TOTAL_TIMEOUTS
      ,SE.TIME_WAITED
      ,SE.AVERAGE_WAIT
FROM V S E S S I O N S , V SESSION S, V SESSIONS,VSESSION_EVENT SE
WHERE S.SID=SE.SID AND SE.EVENT NOT LIKE 'SQL
Net%’
  AND S.STATUS =‘ACTIVE’ AND S.USERNAME IS NOT NULL;
 
2.ORACLE中查询被锁的表并释放session
SELECT A.OWNER
  ,A.OBJECT_NAME
  ,B.XIDUSN
  ,B.XIDSLOT
  ,B.XIDSQN
  ,B.SESSION_ID
  ,B.ORACLE_USERNAME
  ,B.OS_USER_NAME
  ,B.PROCESS
  ,B.LOCKED_MODE
  ,C.MACHINE
  ,C.STATUS
  ,C.SERVER
  ,C.SID
  ,C.SERIAL#
  ,C.PROGRAM
FROM ALL_OBJECTS A,VKaTeX parse error: Expected group after '_' at position 23: …OBJECT B,SYS.GV_̲SESSION C
WHERE  A.OBJECT_ID = B.OBJECT_ID  AND B.PROCESS = C.PROCESS  ORDER BY 1,2;
 
3.查看占用系统IO较大的session
SELECT se.sid
      ,se.serial#
      ,pr.spid
      ,se.username
      ,se.status
      ,se.terminal
      ,se.program
      ,se.module
      ,se.sql_address
      ,st.event
      ,st.p1text
      ,si.physical_reads
      ,si.block_changes
FROM v s e s s i o n s e , v session se,v sessionse,vsession_wait st,v s e s s i o s i , v sess_io si,v sessiosi,vprocess pr
WHERE st.sid=se.sid  AND st.sid=si.sid
  AND se.paddr=pr.ADDR AND se.sid>6
  AND st.wait_time=0 AND st.event NOT LIKE ‘%SQL%’ 
  ORDER BY physical_reads DESC;
 
4.找出耗cpu较多的session
select a.sid
      ,spid
      ,status
      ,substr(a.program,1,40) prog
      ,a.terminal
      ,osuser
      ,value/60/100 value
from v s e s s i o n a , v session a,v sessiona,vprocess b,v$sesstat c
where c.statistic#=12 and c.sid=a.sid and a.paddr=b.addr
   order by value desc

http://www.xdnf.cn/news/385075.html

相关文章:

  • Java常用类-比较器
  • 卫宁健康WiNGPT3.0与WiNEX Copilot 2.2:医疗AI创新的双轮驱动分析
  • KaiwuDB 2.0:为 AIoT 而生,融合时序、关系与 AI 的未来数据库
  • 四、Hive DDL表定义、数据类型、SerDe 与分隔符核心
  • Linux电源管理(9)_wakelocks
  • 百度AI战略解析:文心一言与自动驾驶的双轮驱动
  • 前端npm包发布流程:从准备到上线的完整指南
  • 大模型都有哪些超参数
  • AUTOSAR图解==>AUTOSAR_TR_AIDesignPatternsCatalogue
  • 深入理解设计模式之原型模式(Prototype Pattern)
  • 深入解析PyTorch中MultiheadAttention的隐藏参数add_bias_kv与add_zero_attn
  • 人工智能100问☞第20问:神经网络的基本原理是什么?
  • 搭建基于chrony+OpenSSL(NTS协议)多层级可信时间同步服务
  • 【系统架构师】2025论文《系统可靠性设计》【含记忆口诀】
  • python打卡day22@浙大疏锦行
  • n8n中订阅MQTT数据
  • JavaScript事件处理全解析:从基础到最佳实践
  • 六大设计模式--OCP(开闭原则):构建可扩展软件的基石
  • 【leetcode】《BFS扫荡术:如何用广度优搜索征服岛屿问题》
  • 深度解析大模型学习率:优化策略与挑战
  • Maven 公司内部私服中央仓库搭建 局域网仓库 资源共享 依赖包构建共享
  • 网络IP分片
  • Spring Web MVC响应
  • SaaS场快订首页的前端搭建【持续更新】
  • MacOS Python3安装
  • Vue Router
  • 【Linux系统】第四节—详解yum+vim
  • Java原生结合MQTTX---完成心跳对话(附带源码)
  • 同一个虚拟环境中conda和pip安装的文件存储位置解析
  • ALLinSSL:一站式SSL证书管理解决方案