当前位置:首页 » 编程语言 » 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,那么你在跑的其他窗口的查询就会失败。

热点内容
兔费WLAN密码多少 发布:2025-07-12 12:50:59 浏览:860
阿里云分布式存储 发布:2025-07-12 12:45:04 浏览:535
sql日志压缩 发布:2025-07-12 12:39:53 浏览:343
红点角标算法 发布:2025-07-12 12:11:16 浏览:844
开心消消乐服务器繁忙什么情况 发布:2025-07-12 12:11:14 浏览:239
数据库的封锁协议 发布:2025-07-12 12:10:35 浏览:725
如何配置一台长久耐用的电脑 发布:2025-07-12 11:43:03 浏览:602
昆明桃源码头 发布:2025-07-12 11:38:45 浏览:569
大司马脚本挂机 发布:2025-07-12 11:38:35 浏览:459
数据库实时监控 发布:2025-07-12 11:31:33 浏览:744