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.

相关推荐
晚风吹人醒.几秒前
Linux系统安全及应用(账号权限管理、登录控制、弱口令、端口扫描)
linux·运维·系统安全·grub·sudo·账号管理
DBA小马哥2 分钟前
从“数据洪流”到“业务引擎”:时序数据库为何能重塑企业核心竞争力
数据库·时序数据库
llilian_169 分钟前
时间同步校时服务器配件清单及挑选攻略 校时时间服务器 网络时间同步装置
运维·服务器·网络
深圳市恒讯科技18 分钟前
防止服务器被黑:终极防范网络攻击指南
运维·服务器·网络安全
fjkxyl18 分钟前
Redis 跳表技术博客:为什么不选用红黑树和 B+ 树
数据库·redis·缓存
VicdorLin19 分钟前
docker报错: client version 1.24 is too old. Minimum supported API version is 1.44
运维·docker·容器
橘颂TA20 分钟前
【Linux】从 “抢资源” 到 “优雅控场”:Linux 互斥锁的原理与 C++ RAII 封装实战(Ⅰ)
linux·运维·服务器·c++·算法
RisunJan21 分钟前
Linux命令-init命令(管理运行级别和控制系统状态)
linux·运维·服务器
ayaya_mana21 分钟前
Chrony:通用-替换国内 NTP 源进行时间同步
linux·运维·服务器·chrony