Oracle的级联查询(CONCATENATION)
来源:互联网 发布:wps多个表格数据汇总 编辑:程序博客网 时间:2024/05/21 17:49
在where条件中使用OR或者函数,可能会导致Oracle选择CONCATENATION这种方式。
OR的分析在网上有一些文章,可以搜索查阅,本文不做讨论,仅针对使用函数的情况做分析。
SQL片段如下,涉及到保密机制,表名、字段名、函数名已替换,不影响阅读。
SELECT COUNT(1) FROM T_A WHERE EXISTS (SELECT 1 FROM T_B WHERE B.C_1 = A.C_1 AND B.C_2 = :B4) AND C_3 IN (:B2, F_1(:B2)) AND C_4 = :B1 AND C_5 = '1'
优化思路:在程序中优先执行函数,将结果存储在另外一个变量中,然后将变量写入SQL,则可避免执行计划走CONCATENATION
SELECT COUNT(1) FROM T_A WHERE EXISTS (SELECT 1 FROM T_B WHERE B.C_1 = A.C_1 AND B.C_2 = :B4) AND C_3 IN (:B2,:B3) AND C_4 = :B1 AND C_5 = '1'
通过以上两个计划对比,可见优化后各项指标均有下降,特别是数据获取量上大幅下降。
阅读全文
0 0
- Oracle的级联查询(CONCATENATION)
- ORACLE 数据库的级联查询
- ORACLE 数据库的级联查询
- ORACLE 数据库的级联查询
- ORACLE 数据库的级联查询语句
- ORACLE级联查询
- oracle 级联查询
- oracle级联查询
- Oracle级联递归查询
- Oracle级联查询
- Oracle递归查询,级联查询
- Oracle级联查询(Hierarchical Queries)
- Oracle级联查询Hierarchical Queries
- EOS的级联查询
- MyBatis 的级联查询
- myBaties的级联查询
- myBaties的级联查询
- Oracle 使用connect by进行级联查询
- 他们是新零售推手
- 第三周 【项目4
- python 函数 课堂笔记 12.21
- 蓝桥杯 基础练习 矩形面积交 【简单几何】
- 内网穿透神器ngrok,将本地项目映射外网访问
- Oracle的级联查询(CONCATENATION)
- 项目中引入webMagic爬取一个网页
- 阿里云总裁胡晓明:AI泡沫过后,下一站是“产业AI”
- redis队列一些问题
- keil can not access target
- 到底什么是javaEE、什么是JavaSE,我们用Spring等框架用的jdk到底是什么的思考
- 关于MySQL中default怎么用
- python进阶之PIL 简明教程
- 分布式服务跟踪及Spring Cloud的实现