oracle索引问题

时间:2021.08.22 发布人:tangriguang

oracle索引问题

已解决问题

谷歌tangriguang用户在2021.08.22提交了关于“仙本那oracle索引问题”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-23T14:15:54。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,我不知道说什么才好,除了谢谢 !

希望以下的回答,能够帮助你。

第1个回答

用户名:匿名用户  

慢的原因应该是nvl函数导致了索引失效。

改成下面这样应该能快一些:

SelectDistinct(page_no_cx)Fromyz_inpatient_order

Wh**EREksdm='11'andksdmisnotBULL

ANDstatus_timeBetween问答to_date('2009-07-29','yyyy-mm-dd')andto_date('2009吸损坏-07-30','yyyy-mm-dd');

*********

补充:

索引这个东西的确是由于函数的引用而导致失效,比如:

表A(idchar(10),随会措星事因namechar(10))宽间正冲晚儿赶绿硫,如果在id上建有索引的话:

select*fromawhereid='1000'这春底交斯我类费样就能引用到索引

select*fro造屋即强某交mawhereid=1000这样就能引用不到索引,虽然世秋则有落细带联吧这样也能查出结果,但是**库会有一个默认转换,实际上会转化成下面的sql执行:

select*fromawhereto_**mber(id)=1000;正是由于这个to_**mber晚函数就会导致原来建在id上的索引失效。

类似的如果【ksdm】上面有索引,nvl函数的使用就可能会导致索引失效,可以借助【oracle的执行计划】分析一下,看看到底有没有引用到索引。

---

以上,希望对你有所帮助。