`
xtel
  • 浏览: 21491 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

查询数据库当前连接数(session),进程数等操作

 
阅读更多

转自:http://lxbyjxy.blog.163.com/blog/static/123596409201272645235609/

 

查询当前数据库连接数,进程数,启动数据库

查询数据库当前进程的连接数:

  select count(*) from v$process;

  查看数据库当前会话的连接数:

  elect count(*) from v$session;

  查看数据库的并发连接数:

  select count(*) from v$session where status='ACTIVE';

  查看当前数据库建立的会话情况:

  select sid,serial#,username,program,machine,status from v$session;

  查询数据库允许的最大连接数:

  select value from v$parameter where name = 'processes';

或者:show parameter processes;

查询所有数据库的连接数

selectschemaname,count(*)fromv$sessiongroupbyschemaname;

查询终端用户使用数据库的连接情况。

selectosuser,schemaname,count(*)fromv$sessiongroupbyschemaname,osuser;

#查看当前不为空的连接
select * from v$session where username is not null

#查看不同用户的连接数

select username,count(username) from v$session where username is not null group by username

#连接数

select count(*) from v$session

#并发连接数

Select count(*) from v$session where status='ACTIVE' 

#最大连接

show parameter processes

#修改连接

alter system set processes = value scope = spfile

  修改数据库允许的最大连接数:

  alter system set processes = 300 scope = spfile;

  (需要重启数据库才能实现连接数的修改)

重启数据库:

  shutdown immediate;

  startup;

  查看当前有哪些用户正在使用数据:

  select osuser,a.username,cpu_time/executions/1000000||'s',sql_fulltext,machine

  from v$session a,v$sqlarea b

  where a.sql_address = b.address

  order by cpu_time/executions desc;

备注:UNIX 1个用户session对应一个操作系统process,而Windows体现在线程。

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,V$LOCKED_OBJECT B,SYS.GV_$SESSION C

WHERE ( A.OBJECT_ID = B.OBJECT_ID ) AND (B.PROCESS = C.PROCESS ) ORDER BY 1,2

释放session Sql:

alter system kill session 'sid, serial#'

alter system kill session '379, 21132'

alter system kill session '374, 6938'

查看占用系统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$session se, v$session_wait st,v$sess_io si,v$process 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

找出耗cpu较多的session

select a.sid,spid,status,substr(a.program,1,40) prog,a.terminal,osuser,value/60/100 value

from v$session a,v$process b,v$sesstat c

where c.statistic#=12 and c.sid=a.sid and a.paddr=b.addr order by value desc

查询session被锁的sql可以用一下语句

select sys.v_$session.osuser,sys.v_$session.machine,v$lock.sid,

  sys.v_$session.serial#,

  decode(v$lock.type,

  'MR', 'Media Recovery',

  'RT','Redo Thread',

  'UN','User Name',

  'TX', 'Transaction',

  'TM', 'DML',

  'UL', 'PL/SQL User Lock',

  'DX', 'Distributed Xaction',

  'CF', 'Control File',

  'IS', 'Instance State',

  'FS', 'File Set',

  'IR', 'Instance Recovery',

  'ST', 'Disk Space Transaction',

  'TS', 'Temp Segment',

  'IV', 'Library Cache Invalida-tion',

  'LS', 'Log Start or Switch',

  'RW', 'Row Wait',

  'SQ', 'Sequence Number',

  'TE', 'Extend Table',

  'TT', 'Temp Table',

  'Unknown') LockType,

  rtrim(object_type) || ' ' || rtrim(owner) || '.' || object_name object_name,

  decode(lmode, 0, 'None',

  1, 'Null',

  2, 'Row-S',

  3, 'Row-X',

  4, 'Share',

  5, 'S/Row-X',

  6, 'Exclusive', 'Unknown') LockMode,

  decode(request, 0, 'None',

  1, 'Null',

  2, 'Row-S',

  3, 'Row-X',

  4, 'Share',

  5, 'S/Row-X',

  6, 'Exclusive', 'Unknown') RequestMode,

  ctime, block b

  from v$lock, all_objects, sys.v_$session

  where v$Lock.sid > 6

  and sys.v_$session.sid = v$lock.sid

  and v$lock.id1 = all_objects.object_id;

   启动oracle

   su - oracle

   sqlplus system/pwd as sysdba //进入sql

   startup //启动数据库

   lsnrctl start //启动监听

   sqlplus "/as sysdba"

   shutdown immediate;

   startup mount;

   alter database open;

分享到:
评论

相关推荐

    Oracle查看和修改连接数(进程/会话/并发等等)

    1.查询数据库当前进程的连接数: 代码如下: select count(*) from v$process; 2.查看数据库当前会话的连接数: 代码如下: elect count(*) from v$session; 3.查看数据库的并发连接数: 代码如下: select count(*) ...

    oracle连接数修改方法

    Oracle查看、修改连接数  1.查询数据库当前进程的连接数:  select count(*) from v$process;  2.查看数据库当前会话的连接数:  elect count(*) from v$session;

    oracle Session与lock 解除

    以DBA角色, 查看当前数据库里锁的情况可以用如下SQL语句: select object_id,session_id,locked_mode from v$locked_object; select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v...

    数据库项目组日常运维及应急故障处理手册.docx

    通过操作系统命令top topas glance等查看top进程号,确认是系统进程还是oracle应用进程,查询当前top进程执行的操作和sql语句进行分析。 根据进程号获取正在执行的sql SELECT a.osuser, a.username,b.address,...

    Oracle10,11g 巡检,调优。

    80.数据库session连接数 81.数据库的并发数 82.最近7天归档日志的生成频率 83.未建索引的表(不包含表空间为'SYSTEM', 'SYSAUX', 'SYSMAN', 'USERS', 'TEMP'下的用户) 84.sort_segment检查 85.数据库总大小(Gb)...

    oracle数据库经典题目

    PGA区是在用户进程连接数据库,创建一个会话时,由Oracle为用户分配的内存区域,保存当前用户私有的数据和控制信息,因此该区又称为私有全局区。每个服务器进程只能访问自己的PGA区,所有服务器进程PGA区总和即为...

    Oracle DBA 常用的一些SQL语句(50个)

    oracle的连接数查看和连接用户的查看.sql Sun30新建oracle用户.sql user_job.sql xaview.sql 修改分区索引.SQL 修改数据库核心字符集.txt 僵死进程查询.sql 创建ORACLE表空间.sql 回滚段等待.SQL 在数据库中建JOB....

    sql最全的常用命令语句

    询某个数据库的连接数 select count(*) from Master.dbo.SysProcesses where dbid=db_id() --前10名其他等待类型 SELECT TOP 10 * from sys.dm_os_wait_stats ORDER BY wait_time_ms DESC SELECT *FROM sys....

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    说明:断开与当前数据库的连接并会退出 用法:exit 6. 编辑脚本(edit/ed) 说明:编辑指定或缓冲区的sql脚本 用法:edit [文件名] 列子: 7. 运行脚本 (start/@) 说明:运行指定的sql脚本 用法:start/@ 文件名 ...

    orcale常用命令

    如果这命令不行,找它UNIX的进程数 SQL> select pro.spid from v$session ses,v$process pro where ses.sid=21 and ses.paddr=pro.addr; 说明:21是某个连接的sid数 然后用 kill 命令杀此进程号。 五、SQL*PLUS...

    数据库基础

    §6.2.3 用相关子查询更新操作 174 §6.3 DETELE操作 174 §6.3.1 用delete删除全部记录的操作 174 §6.3.2 用delete有条件删除部分记录 175 §6.3.3 用delete分段删除大量记录 175 §6.4 insert、delete及update 的...

    面试葵花宝典

    页面根据当前页数和每页行数计算出当前页第一行行数,定位结果集到此行,对结果集取出每页显示行数的行即可。 数据库方面:1.存储过程和函数的区别存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象...

    Oracle 主要配置文件介绍

    Oracle 应 用进行文件 I/O操作的目录为任意目录 因此 只要空间允许 可以将备份数 据存放到任意目录下 <br>1.2.4 监听配置文件 为了使得外部进程 如 CAMS后台程序 能够访问 Oracle 数据库 必须配 ...

    Oracle8i_9i数据库基础

    §6.2.3 用相关子查询更新操作 174 §6.3 DETELE操作 174 §6.3.1 用delete删除全部记录的操作 174 §6.3.2 用delete有条件删除部分记录 175 §6.3.3 用delete分段删除大量记录 175 §6.4 insert、delete及update 的...

    ORACLE9i_优化设计与系统调整

    §3.4.24 进程数(PROCESSES) 77 §3.4.25 回滚段名称(ROLLBACK_SEGMENTS) 78 §3.4.26 服务名(SERVICE_NAMES) 78 §3.4.27 会话的数(SESSIONS) 78 §3.4.28 共享池大小(SHARED_POOL_SIZE) 78 §3.4.29 分类区的大小...

    Oracle9i的init.ora参数中文说明

    用来建立数据库连接的唯一服务名。如果要在没有调度程序的情况下仍能连接到数据库, 请将该值设置为与例程名相同。此参数自 8.1.3 版起已废弃。 值范围: 根据操作系统而定。 默认值 :0 mts_sessions: 说明 : 指定...

    python入门到高级全栈工程师培训 第3期 附课件代码

    04 ORM多表操作之一对多查询之双下划线查询 05 ORM多表操作之多对多添加记录 06 ORM多表操作之多对多查询 07 ORM多表操作之F查询与Q查询 08 ORM的querySet集合对象的特性 第53章 01 admin介绍 02 alex首秀失败 03 ...

    最全的oracle常用命令大全.txt

    如果这命令不行,找它UNIX的进程数 SQL> select pro.spid from v$session ses,v$process pro where ses.sid=21 and ses.paddr=pro.addr; 说明:21是某个连接的sid数 然后用 kill 命令杀此进程号。 五、SQL*PLUS...

Global site tag (gtag.js) - Google Analytics