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.

相关推荐
墨北x4 分钟前
2025 年江西省职业院校技能大赛(中职组)《网络建设与运维》赛项样题
运维·网络
一条咸鱼¥¥¥10 分钟前
【运维经验】ESXi虚拟机磁盘设置精简置备,需要回收所占用未能释放的空间
运维
心动啊12110 分钟前
简单学下chromaDB
开发语言·数据库·python
测试人社区—小叶子19 分钟前
边缘计算与AI:下一代智能应用的核心架构
运维·网络·人工智能·python·架构·边缘计算
妮妮喔妮21 分钟前
redis热点key拆分和读多副本
数据库·redis·缓存
小嘟嘟1325 分钟前
从基础到进阶:掌握 userdel,玩转 Linux 用户管理的 “减法” 艺术
linux·运维·网络·shell
测试人社区—小叶子27 分钟前
金融系统迁移测试:历时半年的完整实践复盘
运维·网络·人工智能·python·测试工具·金融
雪球不会消失了29 分钟前
MySQL(开发篇)
数据库·mysql·oracle
萧技电创EIIA30 分钟前
西门子PLC单边通信核心指南
linux·运维·服务器
qq_3482318536 分钟前
Redis 事务(MULTI/EXEC)与 Lua 脚本的核心区别
数据库·redis·lua