新闻详情

新闻详情

首页 / 资讯中心 / 详情

不同列or运算优化经验

发布时间:2026/9/6 1:28:28来源:尧图网络
不同列or运算优化经验
1、 问题项目中对于以下这种语句写法比较常见selectcount(1)from test1 where c1in(A1,A2,A3)and(pcode!03or statusin(1,2));计划or条件是来自两个不同的列此时受到optimizer_or_nbexp参数规则影响做成union_for_or2计划即拆分扫描两次合并结果集我们可以看到union 两部分都是索引扫描用的是c1列的索引那么or条件合并一起做肯定比分开快一倍。所以我们可以考虑调整optimizer_or_nbexp参数合并来优化。select/*OPTIMIZER_OR_NBEXP(2)*/count(1)from test1 where c1in(A1,A2,A3)and(pcode!03or statusin(1,2));计划这里索引扫描就一次达到优化效果。这种计划也可以通过case when写法来实现即将or条件放入case when作为查询项后最终作为查询条件去过滤。2、改写selectcount(1)from(select*,case when pcode!03or statusin(1,2)then1else0end as flag from test1 where c1in(A1,A2,A3))tt wherett.flag1;计划计划和结果都符合预期。3、小结像这种写法优化是从减少扫描次数去考虑。不同列的or运算可以考虑用case when去合并优化。4、测试数据create table test1(id varchar2(36)primary key,c1 varchar2(20),c2 varchar2(20),c3 varchar2(20),pcode varchar2(20),status int);insert into test1selectsys_guid(),A||to_char(round(dbms_random.value(1,100),0)),B||to_char(round(dbms_random.value(1,1000),0)),C||to_char(round(dbms_random.value(1,1000),0)),0||to_char(round(dbms_random.value(1,9),0)), round(dbms_random.value(1,5),0)from dual connect by level800000;commit;create index IDX_DM_TEST1_C1 on test1(c1);dbms_stats.gather_table_stats(USER,TEST1,null,100);
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

咸阳陕西墙面翻新选择时需要注意什么:判断基层是否需要铲除至红砖的指南 2026/9/6 9:14:35

咸阳陕西墙面翻新选择时需要注意什么:判断基层是否需要铲除至红砖的指南

陕西墙面翻新选择时需要注意什么:判断基层是否需要铲除至红砖,核心在于先通过划痕测试和空鼓面积检查来确定基层状况。如果旧墙表面有起砂、空鼓或疏松层,必须铲除至红砖层;反之,若基层强度足够且无空鼓,则…

阅读更多 →
无sudo环境下编译运行RIOT 2026.07:native模式吞吐量测试实践 2026/9/6 9:14:35

无sudo环境下编译运行RIOT 2026.07:native模式吞吐量测试实践

在无 sudo 的系统上跑物联网操作系统,听起来像是给自己找麻烦,但真遇到这种环境时,只能想方设法把事办成。我这次在一台 Ubuntu 主机上,没有任何管理员权限、也几乎没额外安装任何系统依赖,把 RIOT 2026.07 编译起来&a…

阅读更多 →
LlamaFactory微调实战:LoRA/QLoRA参数调优与避坑指南 2026/9/6 9:14:35

LlamaFactory微调实战:LoRA/QLoRA参数调优与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
基于Python和Vue3的校园学科竞赛管理系统开发实践 2026/9/6 9:14:35

基于Python和Vue3的校园学科竞赛管理系统开发实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
通达信基本面副图指标源码详解:用FINANCE函数构建股票评分卡 2026/9/6 9:14:35

通达信基本面副图指标源码详解:用FINANCE函数构建股票评分卡

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Stable Diffusion模型实战:忧郁小红帽AI绘画的情绪表达技术解析 2026/9/6 9:11:35

Stable Diffusion模型实战:忧郁小红帽AI绘画的情绪表达技术解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞