SELECT * FROM TABLE WHERE 1=2 消耗资源分析

[复制链接]
查看11 | 回复4 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
查看SELECT * FROM TABLE WHERE 1=2的执行计划,虽然提示全表扫描,但是cost消耗为0;
假如table这个表非常巨大,比如(上亿条);那么这个查询执行起来是不是也很快呢(一般在几十个毫秒搞定)?
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
再大也没关系,CBO已经做了短路处理,所以响应时间是平的,和行数无关。
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
SQL> SELECT * FROM T WHERE 1=2;
未选定行
已用时间:00: 00: 00.01
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
DINGJUN123>select * from t where 1=2;
未选定行

执行计划
----------------------------------------------------------
Plan hash value: 1322348184
---------------------------------------------------------------------------
| Id| Operation
| Name | Rows| Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT || 1 | 2 | 0 (0)|
|
|*1 |FILTER
|| | |
|
|
| 2 | TABLE ACCESS FULL| T| 4 | 8 | 3 (0)| 00:00:01 |
---------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter(NULL IS NOT NULL)
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
fiter,里面1=2这个谓词永远不成立,所以直接就不执行了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行