Oracle数据库常用查询集锦
2015-12-16 10:37
190 查看
--1.查询数据库当前进程的连接数: select count(*) from v$process; --2.查看数据库当前会话的连接数: select count(*) from v$session; --3.查看数据库的并发连接数: select count(*) from v$session where status='ACTIVE'; --4.查看当前数据库建立的会话情况: select sid,serial#,username,program,machine,status from v$session; --5.查询数据库允许的最大连接数: select value from v$parameter where name = 'processes'; --或者 show parameter processes; --6.修改数据库允许的最大连接数: alter system set processes = 300 scope = spfile; --(需要重启数据库才能实现连接数的修改) --重启数据库: shutdown immediate; startup; --7.查看当前有哪些用户正在使用数据: 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 --8.显示客户端信息 select sid,serial#,username,program,machine,client_info from v$session where username is not null order by username,program,machine --9.根据用户名查看连接数 select username,count(username) from v$session where username is not null group by username --10.查询是否有死锁(如果查询结果为no rows selected,说明数据库中没有死锁。否则说明数据库中存在死锁。 -- 接下来说明一下会话的状态: -- 1.active 处于此状态的会话,表示正在执行,处于活动状态。 -- 2.killed 处于此状态的会话,表示出现了错误,正在回滚,当然,也是占用系统资源的。 -- 还有一点就是,killed的状态一般会持续较长时间,而且用windows下的工具pl/sql developer来kill掉,是不管用的, -- 要用命令:alter system kill session 'sid,serial#' ; -- 3.inactive 处于此状态的会话表示不是正在执行的,比如select语句已经完成。我一开始以为, -- 只要是inactive状态的会话,就是该杀,为什么不释放呢。其实,inactive对数据库本身没有什么影响, -- 但是如果程序没有及时commit,那么就会造成占用过多会话。解决inactive的方法最好的就是在oracle中直接设置超时时间, -- 也是有两种方法,区别暂时还不清楚:) select * from v$locked_object; --11.查看Proflie文件 select username,profile from dba_users where username = 'username'; --12.Oracle的系统参数RESOURCE_LIMIT是一个用于控制用户对于数据库资源使用的参数,当值为true的时候即为启用,否则禁用(默认是禁用的) select name, value from gv$parameter where name = 'resource_limit'; --13.创建一个允许10分钟IDLE时间的PROFILE:(在命令行执行) SQL> CREATE PROFILE KILLIDLE10 LIMIT IDLE_TIME 10; --新创建PROFILE的内容: SQL> col limit for a10 --查看PROFILE文件 SQL> select * from dba_profiles where profile='KILLIDLE10'; --查看用户所属PROFILE SQL> select username,profile from dba_users where username='username'; --修改username用户的PROFILE使用新建的KILLIDLE10: SQL> alter user username profile KILLIDLE10;
相关文章推荐
- ORACLE 运用RMAN删除过期备份和日志文件 释放空间
- oracle 的wm_concat函数使用
- oracle中replace函数的使用
- Oracle的substr和instr函数简单用法
- ORA-01502错误成因和解决方法
- oracle更改数据文件位置
- Oracle超出最大连接数
- oracle ora-00054:resource busy and acquire with nowait specified解决方法
- ORACLE错误一览表 方便查询
- oracle ora-00054:resource busy and acquire with nowait specified解决方法
- Oracle的substr和instr函数简单用法
- ORACLE会使索引失效的条件
- ORACLE 查询被锁住的对象,并结束其会话的方法
- oracle ORA-00031:session marked for kill(标记要终止的会话)解决方法
- [置顶] win7安装oracle 10g时发生“程序异常终止
- [置顶] 如何卸载Oracle 10g
- ubuntu14.04系统中virtualbox安装Oracle VM VirtualBox Extension Pack包
- ubuntu14.04系统中virtualbox安装Oracle VM VirtualBox Extension Pack包
- Oracle nls_sort和nlssort 排序功能介绍
- Oracle与MySQL的几点区别