比较查询两个查询结果相同的查询语句的效率
下面有两条查询记录条数相同的SQL语句,并给出了查询执行计划。但不知道如何来读懂这些内容,请大侠们指教。
俩条SQL语句的内容如下:得出的结果都是39条,
1
SET STATISTICS TIME ON
2
SET STATISTICS IO ON
3![]()
4
select * from drug
5
where drugid in(select drugid from userdrug) and bigid = 0
6![]()
7
select * from userdrug
8
where drugid in (select drugid from drug where bigid = 0)
SET STATISTICS TIME ON2
SET STATISTICS IO ON3

4
select * from drug5
where drugid in(select drugid from userdrug) and bigid = 06

7
select * from userdrug8
where drugid in (select drugid from drug where bigid = 0)已知:drug表中的记录是1745条; userdrug表中的记录为199条;
执行查询计划如下:
效率分析结果如下:
第一条语句
1
SQL Server 分析和编译时间:
2
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。
3![]()
4
SQL Server 执行时间:
5
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。
6
SQL Server 分析和编译时间:
7
CPU 时间 = 11 毫秒,耗费时间 = 11 毫秒。
8![]()
9
(所影响的行数为 23 行)
10![]()
11
表 'Drug'。扫描计数 48,逻辑读 108 次,物理读 0 次,预读 0 次。
12
表 'UserDrug'。扫描计数 1,逻辑读 2 次,物理读 0 次,预读 0 次。
13![]()
14
SQL Server 执行时间:
15
CPU 时间 = 0 毫秒,耗费时间 = 7 毫秒。
16![]()
17
SQL Server 执行时间:
18
CPU 时间 = 0 毫秒,耗费时间 = 7 毫秒。
19![]()
20
SQL Server 执行时间:
21
CPU 时间 = 0 毫秒,耗费时间 = 8 毫秒。
22
SQL Server 分析和编译时间:
23
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。
24![]()
25
SQL Server 执行时间:
26
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。
SQL Server 分析和编译时间: 2
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。3

4
SQL Server 执行时间: 5
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。6
SQL Server 分析和编译时间: 7
CPU 时间 = 11 毫秒,耗费时间 = 11 毫秒。8

9
(所影响的行数为 23 行)10

11
表 'Drug'。扫描计数 48,逻辑读 108 次,物理读 0 次,预读 0 次。12
表 'UserDrug'。扫描计数 1,逻辑读 2 次,物理读 0 次,预读 0 次。13

14
SQL Server 执行时间: 15
CPU 时间 = 0 毫秒,耗费时间 = 7 毫秒。16

17
SQL Server 执行时间: 18
CPU 时间 = 0 毫秒,耗费时间 = 7 毫秒。19

20
SQL Server 执行时间: 21
CPU 时间 = 0 毫秒,耗费时间 = 8 毫秒。22
SQL Server 分析和编译时间: 23
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。24

25
SQL Server 执行时间: 26
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。第二条语句
1
SQL Server 分析和编译时间:
2
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。
3![]()
4
SQL Server 执行时间:
5
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。
6
SQL Server 分析和编译时间:
7
CPU 时间 = 0 毫秒,耗费时间 = 8 毫秒。
8![]()
9
(所影响的行数为 23 行)
10![]()
11
表 'Drug'。扫描计数 199,逻辑读 419 次,物理读 0 次,预读 0 次。
12
表 'UserDrug'。扫描计数 1,逻辑读 2 次,物理读 0 次,预读 0 次。
13![]()
14
SQL Server 执行时间:
15
CPU 时间 = 0 毫秒,耗费时间 = 2 毫秒。
16![]()
17
SQL Server 执行时间:
18
CPU 时间 = 0 毫秒,耗费时间 = 3 毫秒。
19![]()
20
SQL Server 执行时间:
21
CPU 时间 = 0 毫秒,耗费时间 = 3 毫秒。
22
SQL Server 分析和编译时间:
23
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。
24![]()
25
SQL Server 执行时间:
26
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。
SQL Server 分析和编译时间: 2
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。3

4
SQL Server 执行时间: 5
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。6
SQL Server 分析和编译时间: 7
CPU 时间 = 0 毫秒,耗费时间 = 8 毫秒。8

9
(所影响的行数为 23 行)10

11
表 'Drug'。扫描计数 199,逻辑读 419 次,物理读 0 次,预读 0 次。12
表 'UserDrug'。扫描计数 1,逻辑读 2 次,物理读 0 次,预读 0 次。13

14
SQL Server 执行时间: 15
CPU 时间 = 0 毫秒,耗费时间 = 2 毫秒。16

17
SQL Server 执行时间: 18
CPU 时间 = 0 毫秒,耗费时间 = 3 毫秒。19

20
SQL Server 执行时间: 21
CPU 时间 = 0 毫秒,耗费时间 = 3 毫秒。22
SQL Server 分析和编译时间: 23
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。24

25
SQL Server 执行时间: 26
CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。

浙公网安备 33010602011771号