SQL优化 where谓词条件OR优化

1.测试表,及测试语句where条件中OR对应两个字段选择度很高

create table t618 as select * from dba_objects;

select object_name from t618 where (object_id=12043 or DATA_OBJECT_ID=12043) and STATUS='VALID';

2.没有索引情况下,全表扫描逻辑读1238。

3.OR其中一列创建索引,无法使用索引,全表扫描。

SYS@db11g> create index idx_t618_01 on t618(object_id) online;

Index created.

4.OR对应两列同时创建索引,可以使用到两个索引,并CONCATENATION,逻辑读降为7。

SYS@db11g> create index idx_t618_02 on t618(DATA_OBJECT_ID) online;

Index created.

相关推荐
Dobby_052 小时前
【k8s】集群安全机制(二):鉴权
运维·安全·kubernetes
CC.GG2 小时前
【Qt】信号和槽
开发语言·数据库·qt
TH_12 小时前
20、误删oracle数据
数据库·oracle
A13247053122 小时前
SSH远程连接入门:安全高效地管理服务器
linux·运维·服务器·网络·chrome·github
IT邦德3 小时前
GoldenGate 19C的静默安装及打补丁
数据库
吴佳浩 Alben3 小时前
Go 1.22 通关讲解
开发语言·数据库·golang
yenggd3 小时前
企业总部-分支-门点-数据中心使用骨干网SRv6 BE互联互通整体架构配置案例
运维·网络·计算机网络·华为·架构
Hello.Reader3 小时前
Flink SQL UPDATE 语句批模式行级更新、连接器能力要求与实战避坑
大数据·sql·flink
Hello.Reader3 小时前
Flink SQL CALL 语句调用存储过程做数据操作与运维任务(含 Java 示例 + 避坑指南)
运维·sql·flink
阿豪学编程3 小时前
【Linux】进程间通信(IPC):从管道到共享内存
linux·运维·服务器