对于超多关联的select SQL,性能优化好像能做的事情很少

14个join的select语句,头大!
能做性能优化修改的地方有以下几个:
1.where 和on条件中尽可能按照index顺序来排列条件,并且尽可能不在条件左边使用函数,比如substr可以用like 替代。如果非得使用函数,则把带有函数的条件排到后面。
2.按照业务逻辑能用inner join的地方不使用left join,这个语句有个地方inner join ls换成left join,时间要增加8倍!分别是30秒和240秒
3.join 后面的表尽可能不使用子查询


insert into bills
select
*--简化
from ixqdwdel d
inner join (select s.entity,s.deal_no,s.step_open_date,
nvl(nvl(s.offering_date,s.rel_date_b),s.rel_date_a) rel_date
from ixqdwstp s where s.entity=entity_c and s.step_id = 'ISS000'
and s.step_status='4') iss
on iss.entity=d.entity and iss.deal_no=d.deal_no
inner join ixqdwcna c --customer info
on d.customer_id=c.customer_id and d.entity=c.entity
inner join (select * from (select x.entity,x.currency_code,x.rate_1/10000000 rate,x.rate_2/10000000 rate2,
dense_rank() over (partition by x.entity,x.currency_code order by x.date_key) d,x.date_key
from ixqap098 x
where x.entity=entity_c ) a where a.d=1) x
on d.entity=x.entity and d.deal_curr=x.currency_code
left join (select * from
(select l.*,dense_rank() over(partition by l.deal_no order by substr(l.step_id,4,3) desc)seq
from ixqdwolc l where l.entity=entity_c) l where l.seq=1) l --LC/LG
on d.entity=l.entity and d.deal_no=l.deal_no
left join ixqdwicd i on d.deal_no=i.deal_no and d.entity=i.entity and i.step_id='ISS000'

left join ixqdwdpr p
on d.entity=p.entity and d.deal_no=p.deal_no and p.step_id='ISS000' and p.party_code='ISB'
left join ixqdwexs be
on p.party_id=be.party_id and be.entity=p.entity and p.party_ext=be.extension_no
left join ixqdwdpr rp
on d.entity=rp.entity and d.deal_no=rp.deal_no and rp.step_id='ISS000' and rp.party_code='RMB'

left join ixqdwexs ber
on rp.party_id=ber.party_id and ber.entity=rp.entity and rp.party_ext=ber.extension_no
left join (select * from (select s.*,dense_rank() over(partition by s.deal_no order by s.time_stamp desc) seq
from ixqdwstp s where s.entity=entity_c and s.step_status='4'
and (s.step_id like 'PAY%' or s.step_id like 'ACP%')) s where seq=1) doc
on d.entity=doc.entity and d.deal_no=doc.deal_no
inner join (select * from (select s.*,dense_rank() over(partition by s.deal_no order by s.time_stamp desc) seq
from ixqdwstp s where s.entity=entity_c and s.step_status='4') s where seq=1) ls
on d.entity=d.entity and d.deal_no=ls.deal_no
left join (select trim(ld.owner_id) owner_id,ld.limit_key,ld.limit_no,
ld.limit_categ_desc,ld.deal_no,ld.entity from (
select ld.*,lm001.limit_categ_desc,dense_rank()
over(partition by ld.entity,ld.deal_no order by ld.limit_key) seq from
ixqdwlde ld inner join ixqlm001 lm001
on ld.entity=lm001.entity and ld.limit_key=lm001.limit_categ_code
where ld.entity=entity_c and lm001.funded_unfunded='U'
) ld where seq=1 )lm
on d.entity=lm.entity and d.deal_no=lm.deal_no

left join ixqdwchg ch on d.entity=ch.entity and d.deal_no=ch.deal_no
and ch.entity=entity_c and (ch.charge_id like '90%1')
and ch.step_type ='ISS'
left join ixqap129 ap129--
on ch.entity=ap129.entity and ch.charge_id=ap129.debit_credit_id
and ch.charge_curr = ap129.currency_code


where d.entity=entity_c
and d.product in ('01','02','11','12')
and d.last_rel_step_id not like 'BKF%'
and length(trim(d.customer_id))=10
and translate(trim(d.customer_id),'\1234567890','\') is null
;
SQL性能调优实践——SELECT COUNT 最近想深入学习SQL,在网上搜索到一些SQL 优化的资料要么是张冠李戴,Oracle 优化的资料硬是弄成啦MS SQL 优化的资料,而且被很多人转载,收藏,有些要么有些含糊不清,好像是那么回事,也没经过验证,实践出真知!下面是我对SELECT COUNT(*),SELECT COUNT(1),SELECT COUNT (0), SELECT COUNT(Field)等孰优孰劣的测试结果,如果测试方法有什么不足,也希望大家给点建议。首先我们来看看测试的机器、以及开发环境吧:双核处理器 T6670  2G DD 阅读详情

相关推荐

MyBatis的性能优化——SQL语句优化

MyBatis作为一款优秀的持久层框架,凭借其灵活性和易用性在Java开发领域广受欢迎。本文将深入探讨MyBatis的性能优化策略,帮助开发者构建高效稳定的数据访问层。MyBatis的优化方向有以下几个方面:SQL语句优化、缓存机制优化 、批量操作优化、结果集处理优化、高级特性优化、性能监控与调优,下面就需要详细讲一下这些方向。1.1 问题分析1.2 优化方案明确指定字段列表,仅获取必要数据 1.3 动态字段选择通过<if>动态控制返回字段(适用于不同场景字段需求差异大的情况): 2、索引优化策略

2301_81186831的博客 1768

多表查询

多表查询 概述 基础语法: select ​ 列名列表 from ​ 表名列表 where… 多表查询的分类 内连接查询: 隐式内查询: 使用where消除无用的数据 显式内查询 外链接查询: 子查询:

sjwl0526的博客 1823

【ABAP】OPEN SQL(十)「 SQL性能优化 (一) 」

在本节内容中,我们将继续学习ABAP OPEN SQL的知识,今天带来的内容是ABAP SQL性能优化的开篇,在上一节中我们介绍了SAT事务码的运用,为大家打下了坚实的基础,相信各位小伙伴们都已经熟知如何使用SAT事务码进行程序性能分析了吧!那么从本节开始将正式进入SQL性能优化实战部分!拿起键盘跟我练,一路火光带闪电!

Thunder Wang的博客 5066

如何进行JOIN优化?

JOIN是MySQL用来进行联表操作的,用来匹配两个表的数据,筛选并合并符合我们要求的结果集1.永用小结果集驱动大结果集(其本质就是减少外层循环的数据数量)2.为匹配的条件增加索引(减少内层表的循环匹配次数)3.增大ioin buffer size的大小(一次缓存的数据越多,那么内层包的扫表次数就越少)4.减少不必要的字段查询(字段越少,join buffer 所缓存的数据就越多。

sincere_u的博客 2288

SQL SELECT DISTINCT 语句详解:精准去重的艺术

是 SQL 中精准去重的核心工具,通过合理使用可显著提升数据质量。在实际应用中,需结合具体场景选择优化策略,如索引优化、临时表分阶段处理等。随着大数据和分布式计算的发展,未来DISTINCT将进一步集成智能优化技术,如自动索引推荐、并行计算加速等,为数据分析提供更强大的支持。掌握的艺术,不仅能让您的 SQL 查询更高效,还能在数据清洗、分析挖掘等场景中发挥关键作用。赶紧实践起来吧,让精准去重成为您数据分析的得力助手!

QQ_778132974的博客 1957

银河麒麟V10系统下VLC播放器安装全攻略(附3.0.9.2版本离线包下载)

本文详细介绍了在银河麒麟V10操作系统无网络环境下,从零开始编译安装VLC 3.0.9.2播放器的完整攻略。通过构建本地YUM仓库解决依赖问题,提供离线资源包下载,并逐步指导完成编译环境配置、软件编译与安装,帮助用户在国产麒麟系统上成功部署强大的多媒体播放能力。

a2b3c4d5e的博客 1222

嵌套查询与连接查询的性能

嵌套查询与连接查询的性能:连接查询一般较快;子查询很难被优化。(当然和DB优化有关,也可能子查询比连接查询快)其实不能一概而论的~~ 不过,问了下DBA同学,他建议是能用join的,尽量不要用嵌套查询。以下内容,部分是来自网上的一些观点,自己稍加整理的。    子查询是实现关联式计算的一种实例,连接实现了关联式代数。关于关联式计算(relational calculus)和关联式代数(rel

记事本 1万+

FastAPI + Layui:打造企业级敏捷开发后台管理系统

本文详细介绍了如何使用FastAPI和Layui构建高效的企业级后台管理系统。FastAPI提供高性能的异步API支持,而Layui则简化了前端开发流程,两者结合可实现快速开发和部署。文章涵盖了从环境搭建、核心组件开发到性能优化的全流程,特别适合需要敏捷开发的企业项目。

weixin_29045585的博客 555

SQL性能优化

SQL性能优化 本文章内容将完整发表在公众号:程序员开发者社区 ,关注后所有文章免费看。 Oracle 优化器RBO, CBO RBO 基于规则的优化器 oracle 10g开始,已经丢弃RBO CBO 基于成本的优化器 oracle 8中开始引入的 Oracle 解析器按照从右到左的顺序...

王小明的专栏 3571

独立游戏开发者的新武器:实测腾讯混元3D自动绑骨,搭配Mixamo让角色动画制作效率翻倍

本文实测腾讯混元3D自动绑骨功能与Mixamo动画库的协同使用,显著提升独立游戏开发者的角色动画制作效率。通过解决卡通角色绑骨偏差、优化骨骼权重及动画状态机配置,使原本两周的流程缩短至三天,并分享Unity中的性能优化与版权合规要点。

weixin_42662605的博客 498

从ADS到SystemVue:当简单链路预算不够用时,我的射频系统级仿真方案升级实录

本文详细介绍了从ADS到SystemVue的射频系统级仿真升级路径,重点分析了基础链路预算在多端口元件和复杂场景下的局限性,并提供了SystemVue在非线性系统验证和跨域协同分析中的优势。通过实际案例展示了如何平滑迁移工具链,提升仿真精度和效率,适用于5G、毫米波雷达等现代射频系统设计。

weixin_34233974的博客 344

SQL语句详解:SELECT查询的艺术

子句主要作用最佳使用场景WHERE在数据源级别过滤行需要减少参与计算的数据量时GROUP BY按指定列对结果分组需要汇总统计数据时HAVING过滤分组后的结果需要基于聚合结果筛选时ORDER BY对结果集排序需要按特定顺序展示数据时LIMIT限制返回的行数分页或只需要部分结果时窗口函数(又称分析函数)是SQL中的高级特性,允许我们在不改变结果集行数的情况下进行计算,这就像是给每行数据增加了"上下文感知"能力。-- 窗口函数基本语法SELECT窗口函数的核心组成部分。

sinat_27016095的博客 1689

Coze:手把手教你搭建 小红书二创 智能体

前一篇 “” ,讲了如何针对需求进行拆解,并拆解 ”小红书二创“ 智能体,分为四个内容模块。通过上述步骤,开始一步一步构建 “小红书二创” 智能体。用来测试的小红书地址:http://xhslink.com/a/quxWEDAj3J48。

保持敏感!保持学习! 1436

SQL SELECT TOP 语句的深入解析_select top语句

SQL SELECT TOP语句详解:SQL Server专有语法总结 摘要:本文深入解析SQL Server中的SELECT TOP语句用法,涵盖基本语法、高级功能及跨数据库对比。SELECT TOP用于限制查询结果行数,基本语法为SELECT TOP (n) 列名 FROM 表,必须配合ORDER BY使用。高级用法包括TOP n PERCENT返回百分比行数、WITH TIES处理并列排名、以及分页查询实现。文章还对比了不同数据库的等效语法,如MySQL的LIMIT和Oracle的FETCH FIRS

likuoelie的博客 1067

VSCode连接SAP ABAP开发环境

本文介绍了使用VSCode连接ABAP开发环境的详细步骤。首先通过SICF或SMICM事务码获取ABAP连接地址,然后安装ABAP remote filesystem插件。提供了两种创建连接的方法:通过命令面板逐步配置(输入服务器地址、账号、系统标识等)或直接编辑JSON配置文件。最后通过命令面板选择已创建的连接即可完成连接,连接成功后可在VSCode左侧工作区查看ABAP系统内容进行开发。JSON配置方式更为简便推荐。整个流程帮助开发者摆脱复杂的Eclipse配置,实现快速便捷的ABAP开发环境搭建。

weixin_45293769的博客 2217

整理 钢琴 约翰汤普森-简易钢琴(小汤)

文件名:(小汤1)约翰-汤普森钢琴1 超清PDF (原版引进)文件名:(小汤2)约翰-汤普森钢琴2 超清PDF (原版引进)文件名:(小汤3)约翰-汤普森钢琴3 超清PDF (原版引进)文件名:(小汤4)约翰-汤普森钢琴4 超清PDF (原版引进)文件名:(小汤5)约翰-汤普森钢琴5 超清PDF (原版引进)文件大小:20.1 MB。文件大小:23.7 MB。文件大小:45.7 MB。文件大小:51.7 MB。文件大小:72.0 MB。

TS的博客 5万+

如何进行SQL性能优化

在SQL查询中,为了提高查询的效率,我们常常采取一些措施对查询语句进行SQL性能优化。本文我们总结了一些优化措施,接下来我们就一一介绍。 1.查询的模糊匹配 尽量避免在一个复杂查询里面使用 LIKE '%parm1%'—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用。 解决办法: 其实只需要对该脚本略做改进,查询速度便会提高近百倍。改进方法如下: a、修改前台程序——把查询条件的供

web开发成长过程 1265

STM32F4 SPI FLASH(W25Q128)驱动详解(含DMA+完整读写擦除+低功耗)

本文实现了一款基于STM32 HAL库的SPI Flash驱动,以W25Q128为例,提供了完整的初始化、读写、擦除、ID读取等功能。驱动集成了DMA传输、超时保护、页对齐写入等特性,支持扇区擦除、整片擦除、页写入及跨页缓冲写入。代码结构清晰,易于移植到其他SPI Flash型号(如W25Q64、W25Q16等),适用于数据存储、固件升级、文件系统等嵌入式场景。

kevin1499的博客 97

SQL 性能优化总结

42条 SQL 性能优化策略,详细总结!

m0_52861684的博客 1286

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SQL SELECT 语句

SQL SELECT 语句用于从数据库查询数据,基本语法包含选择列(SELECT)、指定表(FROM)、过滤条件(WHERE)、分组(GROUP BY)、分组过滤(HAVING)和排序(ORDER BY)。常用操作包括:查询特定列/所有列、条件筛选、聚合统计、去重(DISTINCT)、限制结果(LIMIT)和多表连接(JOIN)。使用时需注意性能优化、大小写敏感性和SQL注入防护。不同数据库语法可能略有差异。

likuoelie的博客 564

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

关于性能测试:数据库的 SQL 性能优化实战

索引是提高SQL查询性能的关键。同时,要注意索引的维护成本,避免创建过多的索引导致插入、更新和删除操作的性能下降。做过性能测试的同学都应该知道,性能测试核心就是结果分析和性能瓶颈调优,然后性能的瓶颈70%-80%的问题都是来自于数据库。所以,在做性能测试的时候,如果发现数据库占的CPU比较高,或者响应时间比较长,都可以去检查一下 数据库是否存在上述的SQL问题,从而来优化项目的数据库的性能。数据库SQL性能优化是提升数据库运行效率的关键环节,以下是一些具体的注意点,并结合案例进行演示和说明,帮助大家理解。

朱雀随云记的博客 1534

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: Foxmail邮件备份到Gmail
下一篇: 考试不及格
eyejavaeye
博客等级 码龄20年 74粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值