关联查询的一个问题。急切。。。。。谁能帮我优化 推测原因:原来large.[字段1]上并不存在索引,由于增加了一个条件 large.[字段1]=0 导致扫描全表;解决方案:在large表的关键字段和large.[字段1]上建立一个索引,重新分析一下表,再执行一次看看 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select [表达式] from [大表] large ,[小表] little where large .[主键]=little.[主键] and large.[字段1]+0=0;试试看会不会快点 我觉得这里未见得是索引问题,RBO下应该不存在这样的问题,因为主键之间有索引,还是会用的,最后才判断条件。CBO下的话,建议你分析一下表large,再看看效果,有可能是hash join时错误判断了large.[字段1]的选择性,先filter了。考虑一下large.[字段1]的类型,是否不是number型的?那么就会做to_number()操作了,而且可能是对每行。另外,不建议你对large.[字段1]建立索引,选择性估计比较低,如果是DSS,那可以考虑建bitmap索引 你这样试试执行时间是多少select [表达式] from ( select * from [大表] where .[字段1]=0 ) large ,[小表] little where large .[主键]=little.[主键]; select [表达式] from [大表] large ,[小表] little where large.[字段1]=0 andlarge .[主键]=little.[主键]试试这个 select [表达式] from [大表] large ,[小表] little where large.[字段1]=0 and large .[主键]=little.[主键]同意楼上的,oracle好象是从最后一个判断条件开始检索,楼主的语句可能造成了表扫描 ern(与Oracle斗,其乐无穷) 说的有道理,可以先看看执行计划 求一SQL代码检查工具,最好是免费的,多谢! cmd怎样连接oracle数据库 sql 中的 CHR(01) 是什么意思呀 见下面语句 谢谢 求一条sql语句,不用存储过程 oracle存储过程操作相邻记录 初学单表查询的问题 oracle+linux和oracle+window的日志文件在什么地方? 求一个sql语句 怎样只搜索显示前十条记录。 Oracle登陆时报了一个错误,ORA-00600 最简单的问题,看谁回答的又对又快 ------- 举手就有分 关于用DTS把SQL SERVER数据导入到ORACLE中
试试看会不会快点
考虑一下large.[字段1]的类型,是否不是number型的?那么就会做to_number()操作了,而且可能是对每行。
另外,不建议你对large.[字段1]建立索引,选择性估计比较低,如果是DSS,那可以考虑建bitmap索引
select [表达式] from ( select * from [大表] where .[字段1]=0 ) large ,[小表] little where large .[主键]=little.[主键];
试试这个
同意楼上的,oracle好象是从最后一个判断条件开始检索,楼主的语句可能造成了表扫描