详解两条T-SQL语句(如下)
--1.
select * from A,B where A.AID=B.BID and A.AID=1
--2.
select * from (select AID from A where AID=1) as A1,B where A1.AID=B.BID
1.在任何情况下,上面两条T-SQL语句的执行结果是否相同?
2.详解上面两条T-SQL语句在什么情况下,执行效率问题?
[解决办法]
select d.* from emp e,dept d where e.deptno=d.deptno and e.deptno=10;
执行计划如下:
执行计划
----------------------
Plan hash value: 568005898
----------------------------------------------------
[解决办法]
Id
[解决办法]
Operation
[解决办法]
Name
[解决办法]
Rows
[解决办法]
Bytes
[解决办法]
Cost (%CPU)
[解决办法]
Time
[解决办法]
----------------------------------------------------
[解决办法]
0
[解决办法]
SELECT STATEMENT
[解决办法]
[解决办法]
5
[解决办法]
110
[解决办法]
4 (0)
[解决办法]
00:00:01
[解决办法]
[解决办法]
1
[解决办法]
NESTED LOOPS
[解决办法]
[解决办法]
5
[解决办法]
110
------解决方案--------------------
4 (0)
[解决办法]
00:00:01
[解决办法]
[解决办法]
2
[解决办法]
TABLE ACCESS BY INDEX ROWID
[解决办法]
DEPT
[解决办法]
1
[解决办法]
20
[解决办法]
1 (0)
[解决办法]
00:00:01
[解决办法]
[解决办法]
* 3
[解决办法]
INDEX UNIQUE SCAN
[解决办法]
PK_DEPT
[解决办法]
1
[解决办法]
[解决办法]
0 (0)
[解决办法]
00:00:01
[解决办法]
[解决办法]
* 4
[解决办法]
TABLE ACCESS FULL
[解决办法]
EMP
[解决办法]
5
[解决办法]
10
[解决办法]
3 (0)
[解决办法]
00:00:01
[解决办法]
----------------------------------------------------
select d.* from (select a.deptno from emp a where a.deptno=10) e,dept d where e.deptno=d.deptno;
执行计划如下:
执行计划
----------------------
Plan hash value: 568005898
----------------------------------------------------
[解决办法]
Id
[解决办法]
Operation
[解决办法]
Name
[解决办法]
Rows
[解决办法]
Bytes
[解决办法]
Cost (%CPU)
[解决办法]
Time
[解决办法]
----------------------------------------------------
[解决办法]
0
[解决办法]
SELECT STATEMENT
[解决办法]
[解决办法]
5
[解决办法]
110
[解决办法]
4 (0)
[解决办法]
00:00:01
[解决办法]
[解决办法]
1
[解决办法]
NESTED LOOPS
[解决办法]
[解决办法]
5
[解决办法]
110
[解决办法]
4 (0)
[解决办法]
00:00:01
[解决办法]
[解决办法]
2
[解决办法]
TABLE ACCESS BY INDEX ROWID
[解决办法]
DEPT
[解决办法]
1
[解决办法]
20
[解决办法]
1 (0)
[解决办法]
00:00:01
[解决办法]
[解决办法]
* 3
[解决办法]
INDEX UNIQUE SCAN
[解决办法]
PK_DEPT
[解决办法]
1
[解决办法]
[解决办法]
0 (0)
[解决办法]
00:00:01
[解决办法]
[解决办法]
* 4
[解决办法]
TABLE ACCESS FULL
[解决办法]
EMP
[解决办法]
5
[解决办法]
10
[解决办法]
3 (0)
[解决办法]
00:00:01
[解决办法]
----------------------------------------------------
两者执行计划相同,返回结果相同
[解决办法]
第一条语句的可读性比较好
