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.

相关推荐
源之缘-OFD先行者7 小时前
定制化 Live555 实战:按需开发低耗 RTSP 服务器,完美适配 C# 项目
运维·服务器·c#
计算机毕设MTU77577 小时前
999+套计算机毕业设计——基于HTML5+CSS的图书馆借阅管理系统的设计与实现(含源码+部署教程+数据库)
数据库·spring boot·课程设计·借阅管理系统·图书馆
2501_916766547 小时前
MySQL 数据库与 SQL 语言介绍
数据库·sql·mysql
Hello.Reader7 小时前
在 Flink SQL 里做向量检索 VECTOR_SEARCH
大数据·sql·flink
hakertop7 小时前
如何基于C#读取.dot图论文件并和QuickGraph联动
数据库·c#·图论
老华带你飞7 小时前
作业管理|基于Java作业管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端
wifi chicken7 小时前
Linux Wlan无线网络开发之DHCP预留功能 实操demo
linux·运维·服务器
JIngJaneIL7 小时前
基于Java人力资源管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
Xyz996_7 小时前
Redis数据库基础
数据库·redis·缓存
山南有清风7 小时前
基于Redis的分布式任务调用框架实现
数据库·redis·分布式·分布式任务