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.

相关推荐
2301_813599553 分钟前
如何处理MongoDB副本集中节点IP变更_rs.reconfig强制更新配置矩阵
jvm·数据库·python
健康平安的活着3 分钟前
mysql中不同时间类型(date/datetime/timestamp)的查询案例
数据库·mysql
User_芊芊君子4 分钟前
数据库选型指南:架构演进的技术实践
大数据·数据库·架构
2301_796588505 分钟前
如何用数据库版本号机制平滑升级前端本地的数据表结构
jvm·数据库·python
zhangchaoxies7 分钟前
如何配置Oracle 19c JSON存储_环境要求与自动类型映射
jvm·数据库·python
张小凡vip7 分钟前
Docker安装EFK日志系统完整指南
运维·docker·容器·efk
BU摆烂会噶8 分钟前
【工作流的常见模式】LangGraph 常用模式:路由模式(条件分支)
数据库·人工智能·python·langchain
qq_4135020211 分钟前
AWS CodeBuild 配置 PHP 8.0 运行时的正确方法
jvm·数据库·python
原来是猿1 小时前
Linux线程同步与互斥(四):日志系统与策略模式
linux·运维·开发语言·策略模式
人道领域2 小时前
【Redis实战篇】初步基于Redis实现的分布式锁---基于黑马点评
java·数据库·redis·分布式·缓存