oracle当前sql语句
-- 查看oracle数据库最近执行了哪些sql语句搏戚SELECT b.sql_text, --content of SQL a.machine, --which machine run this code a.username, a.mole, -- the method to run this SQL c.sofar / totalwork * 100, --conplete percent c.elapsed_seconds, --run time c.time_remaining --remain to run time FROM v$session a, v$sqlarea b, v$session_longops c WHERE a.sql_hash_value = b.hash_value(+) AND a.SID = c.SID(+) AND a.serial# = c.serial#(+) --AND a.sid=139-- oracle 最枣枣近执行过的sql语句:SELECT sql_text, last_load_time FROM v$sql WHERE last_load_time IS NOT NULLORDER BY last_load_time DESC----监控基岩陵concurrent 正在执行的sql --SELECT a.sid, a.serial#, b.sql_text FROM v$session a, v$sqltext b WHERE a.sql_address = b.address --AND a.sid = <...> ORDER BY b.piece
⑵ oracle SQL查询语句
SELECT LPAD(' ',(LEVEL-1)*3)||ename
FROM emp
START WITH ename='SMITH'
CONNECT BY PRIOR empno=mgr ;
SELECT ename
FROM emp
START WITH ename='SCOTT'
CONNECT BY PRIOR mgr=empno
ORDER BY LEVEL DESC ;
SELECT LPAD(' ',(LEVEL-1)*3)||ename
FROM emp
START WITH mgr IS NULL
CONNECT BY PRIOR empno=mgr ;
你问的是ORACLE中层次树状查询,START WITH 。。 CONNECT BY 用法。
START WITH 指明树的起点。至于是找上级还是下级(也就是你问的),关键就在于PRIOR的用
法。PRIOR的意思是前一个。
比如:START WITH ename='SMITH'
CONNECT BY PRIOR empno=mgr ;
的意思:ename='SMITH'表示树的起点,即第一行
CONNECT BY PRIOR empno=mgr 表示上一行员工的编号是当前行的管理者,即找SMITH的下属。
START WITH ename='SCOTT'树的起点,即第一行
CONNECT BY PRIOR mgr=empno 表示上一行员工的管理员编号是当前员工的编号,即找SCOTT的上级及间接上级。
⑶ 如何查看oracle服务器上正在执行的SQL语句
首先,你要以dba身份登陆数据库。 第二,为某个用户开启sql跟踪。那个用户就是你要跟踪的、正在执行sql语句的那个用户。命令如下: execute dbms_system.set_sql_trace_in_session(sid,serial#,true) 其中参数的意义是,sid-会话id,serial#-序列号,这两个参数可以从v$session中得到。 第三,上面的命令执行成功之后数据库就自动对该用户所发出的所有sql语句进行跟踪,并把结果写在用户跟踪文件里。用户跟踪文件存放在数据库服务器上,路径请参考init.ora文件中的ump参数值。文件名为ora_sid_xxxx.trc(for unix)或者oraxxxxx.trc(for NT),其中xxxx文件系统进程编号,这个编号可以从v$process和v$session两个表通过关联的方式查询得到。
⑷ 如何用sql语句查看Oracle当前的所有会话
用sql语句查看oracle当前连接数 怎样查看oracle当前的连接数呢?只需要用下面的SQL语句查询一下就可以了。
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 #最大连接
SQL> show parameter process
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
db_writer_processes integer 1
gcs_server_processes integer 0
job_queue_processes integer 10
log_archive_max_processes integer 2
processes integer 1500
alter system set processes = value scope = spfile;重启数据库 #修改连接
/home/oracle9i/app/oracle9i/dbs/init.ora
/home/oracle9i/app/oracle9i/dbs/spfilexxx.ora ## open_cursor
当 前的连接数
select count(*) from v$process;
设置的最大连接数(默认值 为150)
select value from v$parameter where name = 'processes';
修改最大连接数
alter system set processes = 300 scope = spfile; 重新启动
当数据库最大连接数不够时会出现客户端连接间歇性失败,报错ORA-12519
⑸ oracle中如何用sql语句显示当前的数据库名称
查询数据表(Tables)名称:
select Table_Name, Tablespace_Name
from Dba_Tables
where Tablespace_Name = 'USERS';
查询数据表(Tables)中的字段(Columns)名称:
sql1:select column_name from all_tab_columns where table_name='table1';
sql2:select column_name from user_tab_columns where table_name='table1';
查询当前数据库实例名
方法一:select instance_name from v$instance;
方法二:show parameter insta