oracle查询使用or,查询视图,使用or就用不上索引
select * from taccoinfo c where (c.c_identityno = '32128319820406203X'
or c.c_identityno = fchangeidentityno('32128319820406203X'));
使用or 就会全表扫描,使用and会能用上索引,请问怎么优化?
CRM_PERSONAL_CUST和CRM_ORG_CUST表的CERTCODE和ORGCERTCODE是有索引的
视图sql
create or replace view taccoinfo as
select /*+ index(CRM_ACCOINFO) */
SYSDATE AS C_MODIFYDATE,
'-' AS C_MAILZIP,
'-' AS C_MAILADDRESS,
'-' AS C_HOMEPHONE,
'-' AS C_CORPPHONE,
'-' AS L_BILLTIME,
'-' AS L_MBILLTIME,
'-' AS L_SBILLTIME,
'-' AS C_EMOBILEPHONE,
'-' AS C_EEMAIL,
'-' AS C_EMAILADDRESS,
'-' AS C_UNPHONE,
to_char(a.CUSTID) as c_custno,
a.ACCOUNTTYPE as c_accounttype,
a.FUNDACCOUNT as c_fundacco,
a.TACHANNELID as c_agencyno,
'-' as c_netno,
'-' as c_childnetno,
a.OPENDATE as d_opendate,
a.ACCOUNTSTATUS as c_accostatus,
'-' as c_freezecause,
TO_DATE('18990101', 'YYYYMMDD') as d_backdate,
999999999 AS L_CHANGETIME,
TO_DATE('18990101', 'YYYYMMDD') as d_firstinvest,
'-' as c_password,
substr('1',0,1) as c_custtype,
b.CUSTNAME as c_custname,
b.CUSTSIMPLENAME as c_shortname,
TO_CHAR('-') as c_helpcode,
b.CERTTYPE as c_identitytype,
b.CERTCODE as c_identityno,
b.POSTCODE as c_zipcode,
b.ADDRESS as c_address,
b.HOMEPHONE as c_phone,
b.FAX as c_faxno,
b.MOBILE as c_mobileno,
b.EMAIL as c_email,
b.SEX as c_sex,
TO_CHAR(b.BIRTH, 'YYYYMMDD') as c_birthday,
b.WORK as c_vocation,
decode(b.SCHOOLAGE, '00','01','01','02','02','03','03','04','QT') as c_education,
b.YEAREARNING as c_income,
b.AGENTNAME as c_contact,
b.AGENT_CERTTYPE as c_contype,
b.AGENT_CERTCODE as c_contno,
decode(e.c_billsendflag,'按季','3','2') as c_billsendflag,
'-' as c_callcenter,
'-' as c_internet,
'-' as c_secretcode,
'-' as c_nationality,
b.CITY as c_cityno,
'-' as c_lawname,
'-' as c_shacco,
'-' as c_szacco,
'-' as c_broker,
'-' as f_agio,
b.REMARK as c_memo,
'-' as c_reserve,
'-' as c_corpname,
b.PHONE as c_corptel,
'-' as C_SPECIALCODE,
'-' as c_actcode,
a.BILLSENDPASS as c_billsendpass,
'-' as c_bill,
'-' as c_checked,
'-' as l_serialno,
b.RELATIONGRADE as c_viplevel,
decode(substr(a.FUNDACCOUNT, 1,2), '10', '10','99','99', '98') as c_tano,
(case when e.c_billsendflag = '不寄送' or e.c_billsendflag = '强制不寄送' then '1' else '0' end) as c_billsend,
'-' as c_bank_acconame,
'-' as c_bank_accono,
'-' as c_bank,
'-' as l_trglimit,
'-' as c_modifyfrom,
'-' as c_modifyoperator,
TO_DATE('18990101', 'YYYYMMDD') as d_lastmodify,
'-' as C_BILLMISS,
'-' as C_BOURSEFLAG,
'-' as C_CUSTOMER_MEMO,
'-' as C_MANUALFLAG,
'-' as C_OTHERFUND,
'-' as C_SEND,
'-' as C_UNEMAIL,
'-' as C_UNSMS,
'-' as C_WRONGMOBILENO,
'-' as c_SERVICEUSER,
'0' as c_throwaway,
'9' as c_servicetype,
to_date('20991231', 'yyyymmdd') as d_idnovaliddate,
null as c_bp,
b.C_SPECIALACCOUNT as C_SPECIALACCOUNT,
'0' as c_billsendpost,
'' as c_recommender,
'' as c_recommendertype
from CRM_ACCOINFO a ,CRM_PERSONAL_CUST b,crm_contactor e
where to_char(b.CUSTID)=to_char(a.CUSTID) and e.objectid = b.CUSTID
and e.contactortype = '0' --客户联系人
and e.role='1' --主联系人
--***********CRM_ORG_CUST表关联*******************
union ALL
select /*+ index(CRM_ACCOINFO) */
SYSDATE AS C_MODIFYDATE,
'-' AS C_MAILZIP,
'-' AS C_MAILADDRESS,
'-' AS C_HOMEPHONE,
'-' AS C_CORPPHONE,
'-' AS L_MBILLTIME,
'-' AS L_SBILLTIME,
'-' AS L_BILLTIME,
'-' AS C_EMOBILEPHONE,
'-' AS C_EEMAIL,
'-' AS C_EMAILADDRESS,
'-' AS C_UNPHONE,
to_char(c.CUSTID) as c_custno,
c.ACCOUNTTYPE as c_accounttype,
c.FUNDACCOUNT as c_fundacco,
c.TACHANNELID as c_agencyno,
to_char('-') as c_netno,
'-' as c_childnetno,
c.OPENDATE as d_opendate,
c.ACCOUNTSTATUS as c_accostatus,
TO_CHAR('-') as c_freezecause,
TO_DATE('18990101', 'YYYYMMDD') as d_backdate,
999999999 AS L_CHANGETIME,
TO_DATE('18990101', 'YYYYMMDD') as d_firstinvest,
'-' as c_password,
substr('0',0,1) as c_custtype,
d.CUSTNAME as c_custname,
d.CUSTSIMPLENAME as c_shortname,
TO_CHAR('') as c_helpcode,
d.ORGCERTTYPE as c_identitytype,
d.ORGCERTCODE as c_identityno,
d.POSTCODE as c_zipcode,
d.ADDRESS as c_address,
d.PHONE as c_phone,
d.FAX as c_faxno,
TO_CHAR('') as c_mobileno,
d.URL as c_email,
'-' as c_sex,
'-' as c_birthday,
'-' as c_vocation,
'-' as c_education,
'-' as c_income,
d.DEALER_NAME as c_contact,
'-' as c_contype,
'-' as c_contno,
decode(f.c_billsendflag,'按季','3','2') as c_billsendflag,
'-' as c_callcenter,
'-' as c_internet,
'-' as c_secretcode,
d.COUNTRY as c_nationality,
d.CITY as c_cityno,
d.ARTIFICAL as c_lawname,
'-' as c_shacco,
'-' as c_szacco,
'-' as c_broker,
'-' as f_agio,
d.REMARK as c_memo,
'-' as c_reserve,
'-' as c_corpname,
d.PHONE as c_corptel,
'-' as C_SPECIALCODE,
'-' as c_actcode,
'-' as c_billsendpass,
'-' as c_bill,
'-' as c_checked,
'-' as l_serialno,
d.RELATIONGRADE as c_viplevel,
decode(substr(c.FUNDACCOUNT, 1,2), '10', '10','99','99', '98') as c_tano,
(case when f.c_billsendflag = '不寄送' or f.c_billsendflag = '强制不寄送' then '1' else '0' end) as c_billsend,
'-' as c_bank_acconame,
'-' as c_bank_accono,
'-' as c_bank,
'-' as l_trglimit,
'-' as c_modifyfrom,
'-' as c_modifyoperator,
TO_DATE('18990101', 'YYYYMMDD') as d_lastmodify,
'-' as C_BILLMISS,
'-' as C_BOURSEFLAG,
'-' as C_CUSTOMER_MEMO,
'-' as C_MANUALFLAG,
'-' as C_OTHERFUND,
'-' as C_SEND,
'-' as C_UNEMAIL,
'-' as C_UNSMS,
'-' as C_WRONGMOBILENO,
'-' as c_SERVICEUSER,
'0' as c_throwaway,
'9' as c_servicetype,
to_date('20991231', 'yyyymmdd') as d_idnovaliddate,
null as c_bp,
d.C_SPECIALACCOUNT as C_SPECIALACCOUNT,
'0' as c_billsendpost,
'' as c_recommender,
'' as c_recommendertype
from CRM_ACCOINFO c
, CRM_ORG_CUST d , crm_contactor f
where to_char(c.CUSTID)=to_char(d.CUSTID) and f.objectid = c.CUSTID
and f.contactortype = '0' --客户联系人
and f.role='1' --主联系人;
oracle查询使用or,查询视图,使用or就用不上索引相关推荐
- oracle报错查询动态视图,oracle基表和动态性能视图
1. 数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息.它是只读表和视图的集合,所有者为sys用户.用户自能在数据字典上执行查询操作,而维护和修改是由系统自动完成的. 数据 ...
- Oracle字符集的查看查询和Oracle字符集的设置修改
本文主要讨论以下几个部分:如何查看查询oracle字符集. 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题. 一.什么是Oracle字符集 Oracle字符集是 ...
- Oracle数据库之子查询
Oracle数据库总结: Oracle数据库之基本查询 Oracle数据库之过滤和排序 Oracle数据库之单行函数 Oracle数据库之多行函数 Oracle数据库之多表查询 SQL> 注意的 ...
- Oracle数据库之基本查询
oracle安装参照: Oracle数据库之安装教程 Oracle数据库总结: Oracle数据库之基本查询 Oracle数据库之过滤和排序 Oracle数据库之单行函数 Oracle数据库之多行函数 ...
- 【转】ORACLE中的子查询 ---OCP--047--46
"子查询"就是查询中嵌套着另一个查询,也即通过SELECT语句的嵌套使用形成子查询.当我们不知道特定的查询条件时,可以用子查询来为父查询提供查询条件以获得查询结果. ORACLE中 ...
- [转载]oracle常用经典SQL查询
原文地址:oracle常用经典SQL查询作者:来者 oracle常用经典SQL查询 1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/( ...
- oracle 5表关联查询,Oracle学习笔记5 - 表查询
Oracle学习笔记五 --- 表查询 下面使用scott用户,用到的表见底部 1.查看表结构 desc [表名] desc emp 2.distinct命令,去除重复行 3.练习 查找SMIT ...
- Oracle EBS 常用表 查询语句
ORACLE EBS常用表查询语句 1. OU.库存组织 SELECT hou.organization_id ou_org_id, --org_id hou.name ou ...
- oracle通过值查字段,Oracle 中 根据值 查询 所在 表和字段
-------------------- -- 这里是查询 数字型字段值 /*declare CURSOR cur_query IS select table_name, column_name, d ...
最新文章
- R语言dplyr包recode函数、recode_factor函数数值或因子替换实战
- numpy库中ndarray切片操作的参数意义
- java for loop_Java for循环执行了两次
- Ember.js 入门指南——路由切换的终止和回跳
- C++11 并发指南一(C++11 多线程初探)
- Paxos算法是莱斯利·兰伯特(Leslie Lamport)1990年提出的一种基于消息传递的一致性算法。
- css比较特殊选择器汇总(持续更新)
- 使用redis批量生成主键(订单)Id
- libcudart.so.8.0 cannot open shared object file: No such file or directory
- [转载] Python中的memoryview
- iOS开发手记-仿QQ音乐播放器动态歌词的实现
- kbmmw 的HTTPSmartService中的跨域访问
- python中的unicode码是什么_Python中Unicode字符串
- Opencv项目实战:05 物体检测
- 超级强大服务器终端,告别 XShell 打造强大的Windows 终端
- 子龙山人Learn Emacs in 21 Days: day 6 学习笔记
- Notepad++下载markdown viewer plugin
- 最小采样频率计算公式_AD5933使用外部时钟获得更低的分析频率
- JDK.attach 包解析
- 加速安装pytorch
热门文章
- NavReady的使用
- 广西师范大学计算机调剂难吗,2014年广西师范大学考研调剂过来人给的建议
- dhcp计算机毕业论文,基于线程池机制的高性能DHCP服务器研究与实现-计算机科学与技术专业毕业论文.docx...
- java ssm框架详解_Java的SSM框架怎样才算真正掌握?
- python多线程执行_python多线程实现同时执行两个while循环
- 【下载】《看见新力量》第二期,带你走进数十位科技创业者背后的故事
- 开箱即用——用模板快速生成《客户意见反馈表》
- 智能数据构建与管理平台Dataphin的前世今生:缘起
- 解读云原生下的可观察性发展方向
- 想咸鱼翻身不粘锅?加油