如何抓到jdbc连接的所执行的sql语句
我们通常在定位数据库锁问题时,通常希望找到哪个进程发出了哪个语句,锁住了哪张表,一般我们通过查v$lock,然后找到sid,再到v$sesion里找到这个进程的hash_value或pre_hash_value,然后根据hash_value定位到具体的语句。
可是,我们发现,通过JDBC连接上来的进程,它的hash_value是0,所以我们就无法定位这个进程执行的语句了,不过在oracle 10g之后,在v$session里面多了个sql_id字段,我们可以通过这个字段来查具体语句。在9i及之前的版本就没办法了。开了个oracle服务请求,oracle工程师也没有给出答案。提供一下语句:
10g之后,可以:
col sess format a15;
SELECT DECODE(request,0,'Holder: ','Waiter: ')||sid sess,
id1, id2, lmode, request, type,block,ctime
from V$LOCK
WHERE (id1, id2, type) IN
(SELECT id1, id2, type from V$LOCK WHERE request>0)
ORDER BY id1, request;
/
select sql_text from v$sqlarea where sql_id in
(select sql_id from v$session where sid=&1);
相关文档:
在我们进行sql注入的过程中常常会用到union查询方法,大多数情况下使用union查询法可以让我们很快的知道目标的数据组织方式。然而当我们遇到ntext、text或image数据类型时,union查询就不太管用了。以sql server为例,在这种情况下会抛出如下错误:ntext 数据类型不能选为 DISTINCT,因为它 ......
方案一:SQL自带的数据库备份计划
一:基本思路
1:要实现异地备份,必须使用域用户帐号来启动SQL Server服务以及SQL Server Agent服务,因为本地系统帐户无法访问网络。
2:在异地机器中建立一个与SQL Server服务器中启动SQL Server服务的域用户帐号同名帐号,且密码保持相同。在异地机器中建立一个共享文件夹,并设置合 ......
如果,现在有两张表A(id,xx.xx...),C(id,Cid,xx,xx...),预实现C中的id与A 中id级联删除、级联更新/数据同步,可有两种实现方式:
一.
利用sql server自带的级联删除、级联更新功能,即其外键约束途径
alter table dbo.C
add constraint FK_C_A_AID
foreign key(AID) references dbo.A(AID)
on delet ......
今天抽出一点时间解释几个关于SQL日志的概念,他们也经常使初学者望而止步,反正计算机的术语都是很抽象的,所以第一感觉就是头疼,然后然后几次后就没感觉了.以下有些是从书上摘抄的,有的是从网上找的算是借花献佛吧!!
物理日志文件:
这个比较好理解,实实在在的东西,数据库目录下面的.ldf文件 ......