易截截图软件、单文件、免安装、纯绿色、仅160KB

ORACLE查询系统中阻塞情况~

在ORACLE中经常会碰到阻塞的情况发生,这个时候我们就需要快速的找出导致阻塞的原因,并尽快排除它,好让系统重新正常运行。
下面以死锁为例,来看看如何找出导致阻塞的会话并解决问题。
//SCOTT窗口1
SQL> select * from t2;
ID
----------
3
1
2
SQL> update t2 set id=12 where id=2;
1 row updated.
SQL>
//SCOTT窗口2
SQL> select * from t2;
ID
----------
3
1
2
SQL> update t2 set id=11 where id=3;
已更新 1 行。
SQL> update t2 set id=13 where id=2;
//此时进入等待……卡住不动了
//SYS窗口
SQL> select c.terminal||' ('''||a.sid||','||c.serial#||''') is blocking '||b.sid
||','||d.serial# block_msg, a.block
2 from v$lock a,v$lock b,v$session c,v$session d
3 where a.id1=b.id1
4 and a.id2=b.id2
5 and a.block>0
6 and a.sid <>b.sid
7 and a.sid=c.sid
8 and b.sid=d.SID
9 ;
BLOCK_MSG BLOCK
---------------------------------------- ----------
HWANG ('138,305') is blocking 153,15 1
SQL> select sid,serial#,username from v$session where username is not null;
SID SERIAL# USERNAME
---------- ---------- ------------------------------
136 179 SYS
138 305 SCOTT
153 15 SCOTT
//这个时候可以杀掉那个BLOCKER
SQL> alter system kill session'138,305';
System altered.
//SCOTT窗口1
SQL> select * from t2;
select * from t2
*
ERROR at line 1:
ORA-00028: your session has been killed
SQL>


相关文档:

Oracle select in/exists/not in/not exits

in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
一直以来认为exists比in效率高的说法是不准确的。
如果查询的两个表大小相当,那么用in和exists差别不大。
in 是把外表和内表作hash
连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
一直以 ......

Oracle(listener.sqlnet.tnsnames)设置


首先来说Oracle的网络结构,往复杂处说能加上加密、LDAP等等。。这里不做讨论,重点放在基本的网络结构也就是我们最常用的这种情况
  
  三个配置文件
  
  listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME\network\admin目录下。
  
  重点:三个文件的作用和使用
  
  #------- ......

Oracle INTERVAL DAY TO SECOND数据类型

INTERVAL DAY TO SECOND数据类型
Oracle语法:
INTERVAL '{ integer | integer time_expr | time_expr }'
{ { DAY | HOUR | MINUTE } [ ( leading_precision ) ]
| SECOND [ ( leading_precision [, fractional_seconds_precision ] ) ] }
[ TO { DAY | HOUR | MINUTE | SECOND [ (fractional_seconds_precision) ] } ......

an example to insert data into Oracle Clob

 Step1. Insert empty_clob() into the Clob column of Oracle
Step2. Set autocommit to false
Step3. Select Clob as oracle.sql.CLOB from database
Step4. Insert String into Clob
Step5. Commit
Example:
import java.sql.*;
import java.io.*;
import oracle.jdbc.driver.OracleResultSet;
......

ORACLE中如何查找特定对象中的文本内容~

SQL> select dbms_metadata.get_ddl('PROCEDURE','PRO2','SCOTT') text from dual;
TEXT
----------------------------------------
CREATE OR REPLACE PROCEDURE "SCOTT"."P
RO2"
is
begin
dbms_output.put_line('wangpeng up');
end;
SQL> select dbms_metadata.get_ddl('PROCEDURE','PRO1','SCOTT') te ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号