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.

相关推荐
数字化转型20254 分钟前
SAP Signavio 在风机制造行业的深度应用研究
大数据·运维·人工智能
WordPress学习笔记7 分钟前
wordpress根据分类ID调用分类名称和分类描述
运维·wordpress
瀚高PG实验室12 分钟前
highgo DB中数据库对象,模式,用户,权限之间的关系
数据库·瀚高数据库
越来越无动于衷14 分钟前
odbc链接oracle数据源
数据库·oracle
李迟34 分钟前
Golang实践录:使用sqlx操作sqlite3数据库
数据库·golang·sqlite
qq_455760851 小时前
docker - 镜像、存储卷和网络深入理解
运维·docker·容器
小Mie不吃饭1 小时前
Oracle - 闪回技术及生产实践
数据库·oracle
爱丽_1 小时前
MyBatis事务管理与缓存机制详解
数据库·缓存·mybatis
Filotimo_1 小时前
EntityGraph的概念
java·开发语言·数据库·oracle
tianyuanwo1 小时前
RPM debugsource包的底层原理:深入解析rpmbuild 4.14中的调试源码打包机制
数据库·rpmbuild·debugsource