exist-in和关联子查询-非关联子查询
对于exist和in,大家的一致看法如下:1.in是子查询为驱动表,外面的表为被驱动表,故适用于子查询结果集小而外面的表结果集大的情况。2.exists是外面的表位驱动表,子查询里面的表为被驱动表,故适用于外面的表结果集小而子查询结果集大的情况。而为何会出现这种exists和in的使用上的区别呢,其实问题的关键在于关联子查询和非关联子查询上。exists一般都是关联子查询,in则一般都是非关联子查询。对于关联子查询,必须先执行外层查询,接着对所有通过过滤条件的记录,执行内层查询。外层查询和内层查询相互依赖,因为外层查询会把数据传递
Procedure print_table hyper link
http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1035431863958 create or replace procedure print_table ( p_query in varchar2, p_date_fmt in varchar2 default 'dd-mon-yyyy hh24:mi:ss' ) -- this utility is designed to be installed ONCE in a database and used -- by all. Also, it is nice to have roles enabled so that queries by -- DBA's that us
some tests about block cleanout
SQL> SELECT HEADER_FILE,HEADER_BLOCK FROM DBA_SEGMENTS where segment_name='EMP';HEADER_FILE HEADER_BLOCK----------- ------------ 4 27SQL> select file_id,block_id from dba_extents where segment_name='EMP'; FILE_ID BLOCK_ID---------- ---------- 4 25 SQL> SELECT HEADER_FILE,HEADER_BLOCK FROM DBA_SEGMENTS where segment_name='PK_EMP';HEADER_FILE HEADER_BLOCK----------- ------------ 4 35SQL> select file_id,block_id from dba_e
Oracle rowid 详解
本文讨论的是关于oracle从8i开始引进object的概念后的rowid,即扩展(extended)的rowid:Oracle6,ROWID中仅用6 bit代表文件号Oracle8,ROWID组成扩展为:FFFF.BBBBBBBB.RRRR,占用6个字节(其中10 bit file# + 22bit block# + 16bit row#);•1. rowid的介绍先对rowid有个感官认识:SQL> select ROWID from Bruce_test where rownum<2;ROWID------------------ ----------AAABnlAAFAAAAAPAAA ROWID的格式如下:数据对象编号 文件编号 块编号 行编号OOOOOO FFF BB
connection session process的联系与区别
连接并不是会话的同义词,发现这一点时很多人都很诧异。在大多数人眼里,它们都是一样的,但事实上并不一定如此。在一条连接上可以建立0个、一个或多个会话。各个会话是单独而且独立的,即使它们共享同一条数据库物理连接也是如此。一个会话中的提交不会影响该连接上的任何其他会话。实际上,一条连接上的各个会话可以使用不同的用户身份!在Oracle中,连接只是客户进程和数据库实例之间的一条特殊线路,最常见的就是网络连接。这条连接可能连接到一个专用服务器进程,也可能连接到调度器。如前所述,连接上可以有0个或多个会话,这说明可