有两张表 table1, table2。
这两张表中都有ID 字段,其中 ID 是varchar2(20)。
table2 已经对ID作索引了。现在有一SQL语句:
select *
from table1 a
left join table2 b
on a.id = b.id
where b.id is not null我发现它的执行计划根本就没有用到索引。
table2 表仍然是full scan, 导致速度很慢。
我感觉很奇怪, 请问大侠怎么回事?
这两张表中都有ID 字段,其中 ID 是varchar2(20)。
table2 已经对ID作索引了。现在有一SQL语句:
select *
from table1 a
left join table2 b
on a.id = b.id
where b.id is not null我发现它的执行计划根本就没有用到索引。
table2 表仍然是full scan, 导致速度很慢。
我感觉很奇怪, 请问大侠怎么回事?
解决方案 »
- date(+)=to_date('20090805','yyyymmdd')
- Asp.net写的一个内部管理系统,当前只有一个用户居然在插入或更新操作时,发生会话阻塞?!
- oracle10g 执行查询常量的sql时,后面出现很多空格
- 请各位高手帮帮!怎样建立新的Oracle数据库 (高分!!!!)
- 在存储过程里如何写文件,求救
- 一个select语句该怎么写
- ODBC访问API的错误:一个字段第二次读取字段值时错误
- 系统乱码问题
- orcal 8 的数据服务器经常会cpu使用100%怎么办???
- oracle控制文件有3个,在使用list archive log all命令时,发现不能读取控制文件1,
- 急急急急急急急:ORA-04098触发器"TEST1.USERS_TG"无效且未通过重新验证
- 这几天处于弱智期,查询语句想不出来了
虽然你已经有索引,但索引里不包含NULL,所以,必须全表扫描!!!不信你去掉这个条件,再看看
from tableA a
where exists (select 1 from tableb b where b.id = a.id)
from table1 a ,table2 b
where a.id = b.id