经过测试,事实和我想象的不一样: SQL> set timing on SQL> ed Wrote file afiedt.buf 1* select empno from emp SQL> select dname from dept d,emp e where d.deptno=e.deptno and empno='7876';DNAME -------------- RESEARCHElapsed: 00:00:00.03 SQL> ed Wrote file afiedt.buf 1* select dname from dept d,emp e where empno='7876' and d.deptno=e.deptno SQL> /DNAME -------------- RESEARCHElapsed: 00:00:00.01 SQL>
select * from table1 t1,table2 t2 where t1.id=t2.id and t1.field1='AA' and t1.field2='BB' 快同意楼上的观点。
听说oracle 9 开始 的能自动优化。
1、select * from material t1,recordinfo t2 where t1.materieldescription like '%1%' and t1.newmateriel=t2.newmateriel 2、select * from material t1,recordinfo t2 where t1.newmateriel=t2.newmateriel and t1.materieldescription like '%1%' 执行后消耗都如下,是否数据量比较少没有什么区别。 耗费 基数 字节 SELECT STATEMENT, GOAL = ALL_ROWS 1547 29737 3955021 HASH JOIN 1547 29737 3955021 TABLE ACCESS FULL TTTT MATERIAL 1090 33011 1650550 TABLE ACCESS FULL TTTT RECORDINFO 145 47166 3914778
应该个人认为语句2速度更快一点。
SQL> set timing on
SQL> ed
Wrote file afiedt.buf 1* select empno from emp
SQL> select dname from dept d,emp e where d.deptno=e.deptno and empno='7876';DNAME
--------------
RESEARCHElapsed: 00:00:00.03
SQL> ed
Wrote file afiedt.buf 1* select dname from dept d,emp e where empno='7876' and d.deptno=e.deptno
SQL> /DNAME
--------------
RESEARCHElapsed: 00:00:00.01
SQL>
and t1.field1='AA' and t1.field2='BB'
快同意楼上的观点。
and t1.newmateriel=t2.newmateriel
2、select * from material t1,recordinfo t2 where t1.newmateriel=t2.newmateriel
and t1.materieldescription like '%1%'
执行后消耗都如下,是否数据量比较少没有什么区别。 耗费 基数 字节
SELECT STATEMENT, GOAL = ALL_ROWS 1547 29737 3955021
HASH JOIN 1547 29737 3955021
TABLE ACCESS FULL TTTT MATERIAL 1090 33011 1650550
TABLE ACCESS FULL TTTT RECORDINFO 145 47166 3914778
所以结果应该是一样的
一开始执行不一样是因为第一条语句有物理读
第二次再执行时,已经到内存里了,少了物理读,所以快了
工作要求:
1.计算机或相关专业本科以上学历,英语优良。
2.五年以上linux/unix/BSD管理经验。拥有大型网站尤其是大型JAVA-based网站的集群以及管理经验。熟悉linux/unix 的管理,配置,备份及灾难恢复。熟悉集群的架设,负载均衡的设置。
3.精通Mysql/Oracle,有相关数据库集群的架设经验,具有数据库优化经验。
4.精通Apache TOMCAT/Jboss 的各项管理配置。
5.精通C shell or Perl,精通各种Linux/unix 下软件的使用,如SSH SSL Iptables等。对网络安全有比较深刻的认识。能有效地防范网络攻击。北京睿朗阳光网络科技有限公司,是提供综合性彩票服务的龙头企业集团,拥有国际化的彩票系统技术解决方案,服务于东南亚、欧洲,及非洲多个国家。面向国内,旗下现有我中啦(www.wozhongla.com)、全国114彩票服务平台(http://www.114caipiao.com)、江西福利彩票服务平台(http://www.loto.jx.cn),以及上海福利彩票服务平台(http://www.loto.sh.cn)。2007年,公司实现销售额从零到4000万元人民币/月的骄人业绩,年收入达3亿多元人民币。
2008年,公司成功地完成了从互联网彩票服务平台向手机、固话、互联网彩票综合服务平台的转型。为公司进一步的发展奠定了坚实基础。
2009年,睿朗阳光正以全新的姿态蓄势待发,现提供优厚的薪金和福利待遇以及良好的发展空间,诚邀优秀技术开发人才的加盟!联系方式:
地址:北京市朝阳区东三环中路39号建外SOHO8号楼
邮编:100022
邮箱:[email protected]
UID2010081 帖子3 精华0 积分16 经验值130 点 阅读权限10 在线时间0 小时 注册时间2009-6-24 最后登录2009-6-24 查看详细资料
编辑 引用 评分 回复 TOP
CBO方式:它是看语句的代价(Cost),这里的代价主要指Cpu和内存。优化器在判断是否用这种方式时,主要参照的是表及索引的统计信息。统计信息给出表的大小、有少行、每行的长度等信息。这些统计信息起初在库内是没有的,是做analyze后才出现的,很多的时侯过期统计信息会令优化器做出一个错误的执行计划,因些应及时更新这些信息。从上面的话来看,我的理解是这样的cbo优化应该是在sql解析完成后,选择最优的方式去执行sql而where后面条件的顺序对sql的执行速度也是有影响的。具体见
http://www.zxbc.cn/html/20080418/33450.html
而我实际工作中也是这样的情况
9I的话不是
如果没收集信息的话会按RBO,话说如果权重是一样的两个条件,是从上向上读的