如何设置oracle中的STAR_TRANSFORMATION_ENABLED参数啊?
我要使用位图索引…………
我要使用位图索引…………
解决方案 »
- 求oracle,sql
- oracle9i以及oracle10G里面,一个新用户想浏览已建用户表的表结构,需要什么权限呢?
- ora-17002: IOException: connection reset
- 求教一个触发器~~~~~~~每过一天更新表中记录,在线等~~~
- 某世界500强企业招Oracle管理员考题,希望各位的帮助,小弟谢过了:)
- 关于连接数据库
- exp和imp在客户端下可以用吗?
- 怎么可以获取数据库所在的服务器名?
- Oracle 10个应用技巧(转载自http://surpass.swpi.edu.cn/)(请不要留言,以便删除)
- 一台服务器客户端连接另外一台服务器数据库提示无监听程序
- 创建包问题
- grant授权问题
alter session set star_transformation_enabled=true;
位图索引用修改这个嘛?
alter system需要用sys用户登录才可以修改
http://topic.csdn.net/u/20090925/09/8b6ceb1e-5d56-469d-80d5-ec0962f3408f.html
运行一个查询,如果只需表中相对较少的数据,CBO会使用索引;但是如果估计通过索引获取的行数超过了一个阈值,优化器将开始全表扫描。
=======================================
所以能提供一下
四个字段的时候查询返回数量多少?
五个字段的时候返回数量是多少?
例如
select mbrid,min(dos) min_dos
from
(select distinct mbrid,dos from fo05 where
(
dx1 in('40201', '40211', '40291', '40401', '40411', '40491','4280', '4281', '42820','42821','42822','42823',' 42840','42841','42842','42843')
or dx2 in('40201', '40211', '40291', '40401', '40411', '40491','4280', '4281', '42820','42821','42822','42823',' 42840','42841','42842','42843')
or dx3 in('40201', '40211', '40291', '40401', '40411', '40491','4280', '4281', '42820','42821','42822','42823',' 42840','42841','42842','42843')
or dx8 in('40201', '40211', '40291', '40401', '40411', '40491','4280', '4281', '42820','42821','42822','42823',' 42840','42841','42842','42843')
--or dx5 in('40201', '40211', '40291', '40401', '40411', '40491','4280', '4281', '42820','42821','42822','42823',' 42840','42841','42842','42843')
)
--select count(dx5) from fo05
and
(
(
((cpt between '99201' and '99205') or (cpt between '99211' and '99215') or (cpt between '99241' and '99245') or (cpt between '99271' and '99275')
or (cpt between '99301' and '99313') or (cpt between '99315' and '99316') or (cpt between '99318' and '99337') or (cpt between '99341' and '99350')
or (cpt between '99354' and '99355') or (cpt between '99381' and '99387') or (cpt between '99391' and '99397') or (cpt between '99401' and '99429')
or (cpt= '99450') or (cpt between '99455' and '99456') or (cpt between '99217' and '99220') or (cpt between '99234' and '99236'))
or ((cpt1 between '99201' and '99205') or (cpt1 between '99211' and '99215') or (cpt1 between '99241' and '99245') or (cpt1 between '99271' and '99275')
or (cpt1 between '99301' and '99313') or (cpt1 between '99315' and '99316') or (cpt1 between '99318' and '99337') or (cpt1 between '99341' and '99350')
or (cpt1 between '99354' and '99355') or (cpt1 between '99381' and '99387') or (cpt1 between '99391' and '99397') or (cpt1 between '99401' and '99429')
or (cpt1= '99450') or (cpt1 between '99455' and '99456')or (cpt1 between '99217' and '99220') or (cpt2 between '99234' and '99236'))
....
or ((cpt9 between '99201' and '99205') or (cpt9 between '99211' and '99215') or (cpt9 between '99241' and '99245') or (cpt9 between '99271' and '99275')
or (cpt9 between '99301' and '99313') or (cpt9 between '99315' and '99316') or (cpt9 between '99318' and '99337') or (cpt9 between '99341' and '99350')
or (cpt9 between '99354' and '99355') or (cpt9 between '99381' and '99387') or (cpt9 between '99391' and '99397') or (cpt9 between '99401' and '99429')
or (cpt9= '99450') or (cpt9 between '99455' and '99456')or (cpt9 between '99217' and '99220') or (cpt9 between '99234' and '99236'))
)
or
(
((rev between '0500' and '0529') or (rev between '0570' and '0599') or (rev between '0770' and '0779') or (rev between '0820' and '0859' )
or (rev between '0982' and '0983') or (rev = '0882'))
or((rev1 between '0500' and '0529') or (rev1 between '0570' and '0599') or (rev1 between '0770' and '0779') or (rev1 between '0820' and '0859')
or (rev1 between '0982' and '0983') or (rev1 = '0882'))
or ((rev2 between '0500' and '0529') or (rev2 between '0570' and '0599') or (rev2 between '0770' and '0779') or (rev2 between '0820' and '0859')
or (rev2 between '0982' and '0983') or (rev2 = '0882'))
or ((rev3 between '0500' and '0529') or (rev3 between '0570' and '0599') or (rev3 between '0770' and '0779') or (rev3 between '0820' and '0859')
or (rev3 between '0982' and '0983') or (rev3 = '0882'))
or ((rev4 between '0500' and '0529') or (rev4 between '0570' and '0599') or (rev4 between '0770' and '0779') or (rev4 between '0820' and '0859')
or (rev4 between '0982' and '0983') or (rev4 = '0882'))
or ((rev5 between '0500' and '0529') or (rev5 between '0570' and '0599') or (rev5 between '0770' and '0779') or (rev5 between '0820' and '0859')
or (rev5 between '0982' and '0983') or (rev5 = '0882'))
or ((rev6 between '0500' and '0529') or (rev6 between '0570' and '0599') or (rev6 between '0770' and '0779') or (rev6 between '0820' and '0859')
or (rev6 between '0982' and '0983') or (rev6 = '0882'))
or ((rev7 between '0500' and '0529') or (rev7 between '0570' and '0599') or (rev7 between '0770' and '0779') or (rev7 between '0820' and '0859')
or (rev7 between '0982' and '0983') or (rev7 = '0882'))
or ((rev8 between '0500' and '0529') or (rev8 between '0570' and '0599') or (rev8 between '0770' and '0779') or (rev8 between '0820' and '0859')
or (rev8 between '0982' and '0983') or (rev8 = '0882'))
or ((rev9 between '0500' and '0529') or (rev9 between '0570' and '0599') or (rev9 between '0770' and '0779') or (rev9 between '0820' and '0859')
or (rev9 between '0982' and '0983') or (rev9 = '0882'))
)
) ) group by mbrid having count(mbrid)>=2;
是这样的一个查询 下面的那些cpt 还有rev都没有问题
只有那个dx 只能是4个字段 5个的时候就不可以了 就不再执行索引了
这个是五个字段的时候,也就是不执行索引的时候SELECT STATEMENT, GOAL = ALL_ROWS Cost=25294 Cardinality=405 Bytes=6885 Time=304
FILTER
HASH GROUP BY Cost=25294 Cardinality=405 Bytes=6885 Time=304
VIEW Object owner=HIT Cost=25294 Cardinality=100683 Bytes=1711611 Time=304
HASH UNIQUE Cost=25294 Cardinality=100683 Bytes=18022257 Time=304
TABLE ACCESS FULL Object owner=HIT Object name=FO05 Cost=21333 Cardinality=100683 Bytes=18022257 Time=256