1、查询oracle的连接数2selectcount(*)fromv$session;32、查询oracle的并发连接数4selectcount(*)fromv$sessionwherestatus='ACTIVE';53、查看不同用户的连接数6selectusername,count(username)fromv$sessionwhereusernameisnotnullgroupbyusername;74、查看所有用户:8select*fromall_users;95、查看用户或角色系统权限(直接赋值给用户或角色的系统权限):10select*fromdba_sys_privs;11select*fromuser_sys_privs;126、查看角色(只能查看登陆用户拥有的角色)所包含的权限13select*fromrole_sys_privs;147、查看用户对象权限:15select*fromdba_tab_privs;16select*fromall_tab_privs;17select*fromuser_tab_privs;188、查看所有角色:19select*fromdba_roles;209、查看用户或角色所拥有的角色:21select*fromdba_role_privs;22select*fromuser_role_privs;2310、查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)24select*fromV$PWFILE_USERS;selectcount(*)fromv$process--当前的连接数selectvaluefromv$parameterwherename='processes'--数据库允许的最大连接数修改最大连接数:altersystemsetprocesses=300scope=spfile;重启数据库:shutdownimmediate;startup;--查看当前有哪些用户正在使用数据SELECTosuser,a.username,cpu_time/executions/1000000||'s',sql_fulltext,machinefromv$sessiona,v$sqlareabwherea.sql_address=b.addressorderbycpu_time/executionsdesc;selectcount(*)fromv$session#连接数selectcount(*)fromv$sessionwherestatus='ACTIVE'#并发连接数showparameterprocesses#最大连接altersystemsetprocesses=valuescope=spfile;重启数据库#修改连接SQLSelectcount(*)fromv$sessionwherestatus='ACTIVE';COUNT(*)----------20SQLSelectcount(*)fromv$session;COUNT(*)----------187SQLshowparameterprocesses;NAMETYPEVALUE---------------------------------------------------------aq_tm_processesinteger0db_writer_processesinteger1gcs_server_processesinteger0job_queue_processesinteger10log_archive_max_processesinteger2processesinteger450SQL并发指active,ISEESQLselectcount(*)fromv$session#连接数SQLSelectcount(*)fromv$sessionwherestatus='ACTIVE'#并发连接数SQLshowparameterprocesses#最大连接SQLaltersystemsetprocesses=valuescope=spfile;重启数据库#修改连接unix1个用户session对应一个操作系统process而windows体现在线程DBA要定时对数据库的连接情况进行检查,看与数据库建立的会话数目是不是正常,如果建立了过多的连接,会消耗数据库的资源。同时,对一些“挂死”的连接,可能会需要DBA手工进行清理。以下的SQL语句列出当前数据库建立的会话情况:selectsid,serial#,username,program,machine,statusfromv$session;输出结果为:SIDSERIAL#USERNAMEPROGRAMMACHINESTATUS-------------------------------------------------------11ORACLE.EXEWORK3ACTIVE21ORACLE.EXEWORK3ACTIVE31ORACLE.EXEWORK3ACTIVE41ORACLE.EXEWORK3ACTIVE53ORACLE.EXEWORK3ACTIVE61ORACLE.EXEWORK3ACTIVE71ORACLE.EXEWORK3ACTIVE827SYSSQLPLUS.EXEWORKGROUP\\WORK3ACTIVE115DBSNMPdbsnmp.exeWORKGROUP\\WORK3INACTIVE其中,SID会话(session)的ID号;SERIAL#会话的序列号,和SID一起用来唯一标识一个会话;USERNAME建立该会话的用户名;PROGRAM这个会话是用什么工具连接到数据库的;STATUS当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作;如果DBA要手工断开某个会话,则执行:altersystemkillsession\'SID,SERIAL#\'sql语句SQL语句如下:SELECTusername,machine,program,status,COUNT(machine)AS连接数量FROMv$sessionGROUPBYusername,machine,program,statusORDERBYmachine;显示结果(每个人的机器上会不同)SCHNEIDER|WORKGROUD\WANGZHENG|TOAD.exe|ACTIVE|1SCHNEIDER|WORKGROUP\597728AA514F49D|sqlplusw.exe|INACTIVE|1||ORACLE.EXE|ACTIVE|8PUBLIC|||INACTIVE|0按主机名查询SELECTCOUNT(*)FROMV$SESSIONWHEREMACHINE='DXMH';'DXMH'为主机名数据恢复语句createtableinformationlaw_bakasselect*frominformationlawasofTIMESTAMPto_timestamp('20121126103435','yyyymmddhh24miss');//按机器名分组查selectusername,machine,count(username)fromv$sessionwhereusernameisnotnullgroupbyusername,machine;