當前位置:首頁 » 編程語言 » session執行sql

session執行sql

發布時間: 2023-01-10 04:32:36

A. 怎麼找到當前session正在執行的sql

1、查看全部session中SQL:

spool d:\oracle_realtime_sqllist.txt
SET LINESIZE 100
SET PAGESIZE 50000
COL USERNAME FOR A10
COL machine FOR A15
COL sql_text FOR A50
select
substr(s.username,1,18) username,
s.sid,s.serial#,s.machine,y.sql_text
from v$session s,v$process p,v$transaction t,v$rollstat r,v$rollname n,v$sql y
where s.paddr = p.addr
and s.taddr = t.addr (+)
and t.xisn = r.usn (+)
and r.usn = n.usn (+)
and s.username is not null
and s.sql_address=y.address
--and s.sid=56
order by s.sid,s.serial#,s.username,s.status
;
spool off

2、查看某個時,檢索條件中指定s.sid值即可。
SET LINESIZE 100
SET PAGESIZE 50000
COL USERNAME FOR A10
COL machine FOR A15
COL sql_text FOR A50
select
substr(s.username,1,18) username,
s.sid,s.serial#,s.machine,y.sql_text
from v$session s,v$process p,v$transaction t,v$rollstat r,v$rollname n,v$sql y
where s.paddr = p.addr
and s.taddr = t.addr (+)
and t.xisn = r.usn (+)
and r.usn = n.usn (+)
and s.username is not null
and s.sql_address=y.address
and s.sid=&sid
order by s.sid,s.serial#,s.username,s.status
;

3、根據操作系統進程號查看某個session。
select
substr(s.username,1,18) username,
s.sid,s.serial#,s.machine,y.sql_text
from v$session s,v$process p,v$transaction t,v$rollstat r,v$rollname n,v$sql y,v$process z
where s.paddr = p.addr
and s.taddr = t.addr (+)
and t.xisn = r.usn (+)
and r.usn = n.usn (+)
and s.username is not null
and s.sql_address=y.address
and s.paddr = z.addr
and z.spid = &pid
order by s.sid,s.serial#,s.username,s.status
;

B. 如何查詢session執行的歷史sql語句

如何知道一個session都執行過哪些SQL語句?(查看當前比較容易,歷史的呢?怎麼復原sql的執行場景——事務關系、執行序列、單SQL還是存儲過程)

【方法一】查詢v$sqltext、v$sqlarea、v$sqlstats視圖
select * from v$sqlarea t where t.PARSING_SCHEMA_NAME in ('schema') order by t.LAST_ACTIVE_TIME desc;
#對v$sqltext、v$sqlarea查看的是shared pool中的SQL,其時間索引是其解析歷史,因為共享的問題這個查詢可能並不能完整地反映出執行的歷史。
#v$sqlstats信息保留時間比v$sql、v$sqltext、v$sqlarea長,及時SQL已經換出shared pool仍然可查到
【方法二】
聯合v$active_session_history和v$sqlarea
#v$active_session_history 這個表只是個取樣數據,按秒進行,只有在那一秒采樣點處於on cpu或非idle等待的session統計在內。所以可能會不全,有些執行很短的SQL會忽略。這個視圖無法還原完整的session歷史。
#v$sqlarea中有執行過的SQL語句,但並無到session的關聯信息,v$session中只關聯了當前的sql,所以也不行。
查看視圖:dba_hist_sqlstats、dba_hist_sqltext(歷史數據)

C. sql預處理和session

sql預處理對象

PreparedStatement pst = null;

connection.prepareStatement(sql);

Object[] pars = {name,pwd};

for(int i =0 ;i<pars.lenth;i++){

pst.setObject(i+1,pars[i]);

}

public int update(String sql,Object[] pars){

getCon();

 int x = 0;

 //sql預處理對象 PreparedStatement pst = null;

 try {

pst = connection.prepareStatement(sql);

 //pst.setString(1,user.getName());

 //pst.setString(2,user.getPwd()); for(int i =0 ;i<pars.length;i++){

pst.setObject(i+1,pars[i]);

}

x = pst.executeUpdate();

}catch(SQLExeception e){

e.printStackTrace()

}

return x;

}

執行失敗返回-1  執行成功有多少返回多少

session.getsession()

session.setsession()

D. 怎麼找到當前session正在執行的sql


selectsid,v$session.serial#,v$process.spid,v$session.username,last_call_et,status,LOCKWAIT,machine,logon_time,sql_textfromv$session,v$process,v$sqlareawherepaddr=addrandsql_hash_value=hash_valueandv$session.usernameisnotnullandsql_textnotlike'%session%'andstatus='ACTIVE'orderbylast_call_etdesc;

廉瀧潛培薛朝汾店馳比注嶸聲麻蒴峙藩問分駟陸

E. 怎麼查詢一個session執行的所有sql

方法一】查詢v$sqltext、v$sqlarea、v$sqlstats視圖 select * from v$sqlarea t where t.PARSING_SCHEMA_NAME in ('schema') order by t.LAST_ACTIVE_TIME desc; #對v$sqltext、v$sqlarea查看的是shared pool中的SQL

F. hive 使用同一個session執行不同的sql注意事項

最近在hue上開多個窗口執行不同的sql的時候,發現如果在某個窗口裡面設置某些properties的時候(比如 set spark.executor.memory=10g),會導致其他窗口裡面執行的sql失敗。
註: 我們使用spark作為默認的執行引擎 (即 set hive.execution.engine=spark)

原因是因為 當你在hue上用某個賬戶登錄之後,執行第一個sql的時候,hue會get 到hive的一個connection,hive也會在yarn上創建一個spark的應用,獲得到一個session。而多窗口執行sql其實是共用的這一個session。所以如果你在同一個session裡面做查詢的時候是沒問題的,你可以同時跑很多的sql,但是如果你set properties的時候就會有問題。因為session是在創建的時候載入properties的,所以如果你set properties的話就會需要重新創建這個session。也就是說會斷開老的 session創建一個新的session,那麼你在跑的其他窗口的查詢就會失敗。

熱點內容
紅點角標演算法 發布:2025-07-12 12:11:16 瀏覽:843
開心消消樂伺服器繁忙什麼情況 發布:2025-07-12 12:11:14 瀏覽:238
資料庫的封鎖協議 發布:2025-07-12 12:10:35 瀏覽:724
如何配置一台長久耐用的電腦 發布:2025-07-12 11:43:03 瀏覽:601
昆明桃源碼頭 發布:2025-07-12 11:38:45 瀏覽:568
大司馬腳本掛機 發布:2025-07-12 11:38:35 瀏覽:458
資料庫實時監控 發布:2025-07-12 11:31:33 瀏覽:743
vb6反編譯精靈 發布:2025-07-12 11:23:12 瀏覽:997
模擬存儲示波器 發布:2025-07-12 11:10:58 瀏覽:814
怎麼查看安卓真實運行內存 發布:2025-07-12 11:08:39 瀏覽:883