数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
RBO和CBO下的NOT IN/NOT EXISTS与外关联

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

SQL> analyze table scott.emp compute statistics for table for all columns;

表已分析。

已用时间:  00: 00: 06.06


SQL> select * from scott.emp e
  2  where e.empno not in (select mgr from scott.emp);

未选定行

已用时间:  00: 00: 00.00

Execution Plan
----------------------------------------------------------                                         
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=4 Card=1 Bytes=32)                               
   1    0   FILTER                                                                                 
   2    1     TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=1 Bytes=32)                                
   3    1     TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=1 Bytes=3)                                 

SQL>
SQL> select * from scott.emp e
  2  where not exists (select null from scott.emp s where s.mgr=e.empno);

     EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM     DEPTNO             
---------- ---------- --------- ---------- ---------- ---------- ---------- ----------             
      7844 TURNER     SALESMAN        7698 08-9月 -81       1500          0         30             
      7521 WARD       SALESMAN        7698 22-2月 -81       1250        500         30             
      7654 MARTIN     SALESMAN        7698 28-9月 -81       1250       1400         30             
      7499 ALLEN      SALESMAN        7698 20-2月 -81       1600        300         30             
      7934 MILLER     CLERK           7782 23-1月 -82       1300                    10             
      7369 SMITH      CLERK           7902 17-12月-80        800                    20             
      7876 ADAMS      CLERK           7788 23-5月 -87       1100                    20             
      7900 JAMES      CLERK           7698 03-12月-81        950                    30             

已选择8行。

已用时间:  00: 00: 00.01

Execution Plan
----------------------------------------------------------                                         
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=5 Card=8 Bytes=280)                              
   1    0   HASH JOIN (ANTI) (Cost=5 Card=8 Bytes=280)                                             
   2    1     TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=14 Bytes=448)                              
   3    1     TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=13 Bytes=39)                               

SQL>
SQL> select e.* from scott.emp e,scott.emp t
  2  where e.empno=t.mgr(+)
  3    and t.mgr is null;

     EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM     DEPTNO             
---------- ---------- --------- ---------- ---------- ---------- ---------- ----------             
      7844 TURNER     SALESMAN        7698 08-9月 -81       1500          0         30             
      7521 WARD       SALESMAN        7698 22-2月 -81       1250        500         30             
      7654 MARTIN     SALESMAN        7698 28-9月 -81       1250       1400         30             
      7499 ALLEN      SALESMAN        7698 20-2月 -81       1600        300         30             
      7934 MILLER     CLERK           7782 23-1月 -82       1300                    10             
      7369 SMITH      CLERK           7902 17-12月-80        800                    20             
      7876 ADAMS      CLERK           7788 23-5月 -87       1100                    20             
      7900 JAMES      CLERK           7698 03-12月-81        950                    30             

已选择8行。

已用时间:  00: 00: 00.01

Execution Plan
----------------------------------------------------------                                         
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=5 Card=14 Bytes=490)                             
   1    0   FILTER                                                                                 
   2    1     HASH JOIN (OUTER)                                                                    
   3    2       TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=14 Bytes=448)
   4    2       TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=14 Bytes=42)                             

SQL>
SQL> select /*+rule*/* from scott.emp e
  2  where e.empno not in (select mgr from scott.emp);

未选定行

已用时间:  00: 00: 00.00

Execution Plan
----------------------------------------------------------                                         
   0      SELECT STATEMENT Optimizer=HINT: RULE                                                    
   1    0   FILTER                                                                                 
   2    1     TABLE ACCESS (FULL) OF 'EMP'                                                         
   3    1     TABLE ACCESS (FULL) OF 'EMP'                                                         

SQL>
SQL> select /*+rule*/* from scott.emp e
  2  where not exists (select null from scott.emp s where s.mgr=e.empno);

     EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM     DEPTNO             
---------- ---------- --------- ---------- ---------- ---------- ---------- ----------             
      7369 SMITH      CLERK           7902 17-12月-80        800                    20             
      7499 ALLEN      SALESMAN        7698 20-2月 -81       1600        300         30             
      7521 WARD       SALESMAN        7698 22-2月 -81       1250        500         30             
      7654 MARTIN     SALESMAN        7698 28-9月 -81       1250       1400         30             
      7844 TURNER     SALESMAN        7698 08-9月 -81       1500          0         30             
      7876 ADAMS      CLERK           7788 23-5月 -87       1100                    20             
      7900 JAMES      CLERK           7698 03-12月-81        950                    30             
      7934 MILLER     CLERK           7782 23-1月 -82       1300                    10             

已选择8行。

已用时间:  00: 00: 00.01

Execution Plan
----------------------------------------------------------                                         
   0      SELECT STATEMENT Optimizer=HINT: RULE                                                    
   1    0   FILTER                                                                                 
   2    1     TABLE ACCESS (FULL) OF 'EMP'                                                         
   3    1     TABLE ACCESS (FULL) OF 'EMP'                                                         

SQL>
SQL> select /*+rule*/ e.* from scott.emp e,scott.emp t
  2  where e.empno=t.mgr(+)
  3    and t.mgr is null;

     EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM     DEPTNO             
---------- ---------- --------- ---------- ---------- ---------- ---------- ----------             
      7369 SMITH      CLERK           7902 17-12月-80        800                    20             
      7499 ALLEN      SALESMAN        7698 20-2月 -81       1600        300         30             
      7521 WARD       SALESMAN        7698 22-2月 -81       1250        500         30             
      7654 MARTIN     SALESMAN        7698 28-9月 -81       1250       1400         30             
      7844 TURNER     SALESMAN        7698 08-9月 -81       1500          0         30             
      7876 ADAMS      CLERK           7788 23-5月 -87       1100                    20             
      7900 JAMES      CLERK           7698 03-12月-81        950                    30             
      7934 MILLER     CLERK           7782 23-1月 -82       1300                    10             

已选择8行。

已用时间:  00: 00: 00.00

Execution Plan
----------------------------------------------------------                                         
   0      SELECT STATEMENT Optimizer=HINT: RULE                                                    
   1    0   FILTER                                                                                 
   2    1     MERGE JOIN (OUTER)                                                                   
   3    2       SORT (JOIN)                                                                        
   4    3         TABLE ACCESS (FULL) OF 'EMP'                                                     
   5    2       SORT (JOIN)                                                                        
   6    5         TABLE ACCESS (FULL) OF 'EMP'                                                     




相关文章

相关软件