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