24号信仰

专注SQL优化

SQL优化经典案例合集

案例即笔记,难免有疏漏。如对案例有任何问题 请直接留言或者联系本人(微信/手机号:15652625652) 我很乐意和大家相互学习,共同进步!! 34.关注业务-把优化做到极致了解业务,优化新高度 33.一波三折:UPDATE语句改写优化 UPDATE/MERGE/分批提交 哪个高效用哪...

2018-09-01 08:11:35

阅读数 884

评论数 0

关注业务-把优化做到极致

SELECT .. .. .. FROM AWP.TTT_TTT_TRANSACTION_2018 INCT LEFT JOIN AWP.TTT_TTT_TELM TELM ON INCT.TELLER_NO = TELM.TELLER_NO LEFT JOIN SJB_CD_...

2019-04-03 17:52:54

阅读数 129

评论数 0

一波三折:UPDATE语句改写优化

最近赶上第四季度上版。很多套系统迁移测试,太忙,抽空带徒弟去优化了一条UPDATE改写的SQL 具体的故障分析报告是她写的,如下:       2018年10月份的一天,历史报表系统的开发人员让我帮忙优化一个每天执行报错ORA-01555的存储过程,由于最近给他们系统处理过其他的几个存储过程...

2018-10-31 10:27:19

阅读数 198

评论数 0

一次'诡异'的执行SQL报错ORA-03113的问题处理

银行某系统存储过程报错,重新调起仍报错,而前几天这个一直正常。通过应用日志定位到报错信息, ORA-03113: 通信通道的文件结尾 进程 ID: 36503726 会话 ID: 586 序列号: 65345 遇到这种错误,习惯性在网上找答案。然而网上那些关于这个经典错误的经典案例无一能和我的...

2018-10-22 16:29:02

阅读数 95

评论数 0

分页语句优化案例

某数仓系统,一条SQL语句执行了很长时间,SQL和执行计划如下 select c.data_dt, c.cust_id, c.cust_mgr_id, c.org_id, c.outlets_id, c.ent_master...

2018-10-22 16:28:24

阅读数 75

评论数 0

使用HASH代替NEST LOOP

某系统有一条SQL 执行了十几个小时没出结果~ 【SQL复杂 案例简单 已经精通oracle连接方式的可自行绕道别的案例~】 SQL语句和执行计划如下: select tt.org_type, tt.prod_code, tt.prod_name, ...

2018-10-22 16:27:36

阅读数 201

评论数 1

从业务上消除SORT MERGE JOIN

背景:某系统跑批的一个存储过程一直报错ORA-1652: unable to extend temp segment by 128 in tablespace xxx 查看alertlog 获取报错的时间点: 收集 报错期间的AWR 直接在SQL Statistics 里面可以定位到SQL...

2018-09-26 16:26:26

阅读数 110

评论数 0

又是标量子查询引起的性能问题

某系统巡检,发现TOPSQL里面第一条SQL语句的执行时间相当不合理~ select (select EC_CUST_NO from GYL.FAAAAASM cus where cus.refcode = a.SELLER_REFCODE) EC_CUS...

2018-09-26 16:20:36

阅读数 332

评论数 0

树形查询的优化案例

某数仓系统一条SQL执行了很长时间,要求分析原因 使用如下查询获取时间段内SQL语句的执行情况 select count(1),sql_id from dba_hist_active_sess_history where to_char(sample_time, 'yyyy-mm-dd...

2018-09-26 16:19:27

阅读数 323

评论数 2

选择最合适的连接方式

声明:本例十分简单,只适合新手DBA走马,老司机请自觉绕道~ 背景:跑批中一条SQL“卡住”了三个小时..... SQL以及执行计划如下: SELECT A.* FROM SSS_DDD_ACCT_DDD_DDD a WHERE exists (select nameFrom ...

2018-09-26 16:18:37

阅读数 116

评论数 0

大量慢SQL导致节点宕机的故障分析

故障背景:项目负责人找到我说2018-08-28 11:40:00-2018-08-28 11:45:00左右收到频繁告警短信 数据库节点1宕机,节点2 SESSION数一直在增加。这是一个数据仓库系统,正常情况下SESSION一般是90左右,现在将近500,而且还在增长 select * ...

2018-09-01 11:39:37

阅读数 558

评论数 0

深入理解Linux修改hostname(原文作者:潇湘隐者)

当我觉得对Linux系统下修改hostname已经非常熟悉的时候,今天碰到了几个个问题,这几个问题给我好好上了一课,很多知识点,当你觉得你已经掌握的时候,其实你了解的还只是皮毛。技术活,切勿浅尝则止! -----------------------------------------------...

2018-08-21 16:37:43

阅读数 3622

评论数 1

半连接、反连接的优化案例

先来理解几个概念: 半连接:两表关联,只返回匹配上的数据并且只会返回一张的表的数据,半连接一般就是指的在子查询中出现 IN 和 EXISTS 反连接:两表关联,只返回主表的数据,并且只返回主表与子表没关联上的数据,这种连接就叫反连接。反连接一般就是指的 NOT IN 和 NOT EXISTS ...

2018-08-14 16:52:51

阅读数 350

评论数 0

parallel优化案例

背景:某数据仓库系统 一个ETL流程执行了10多个小时才完成!平时都是1小时 问题定位: 查看ETL时间段内所有SQL的运行时间。 select count(1), sql_id from dba_hist_active_sess_history where to_char(sampl...

2018-08-14 11:10:12

阅读数 161

评论数 0

bitmap index的优化案例

某系统存储过程执行不过去,通过查询长时间ACTIVE的SESSION定位到如下语句: UPDATE AAA_BBBBBBBBB_ALM T SET KEY_BS='1111111111' WHERE T.PARTITION_KEY = 'S00000014097' AND T.KEY_...

2018-08-09 11:09:05

阅读数 671

评论数 0

一次从业务出发的优化

背景:朋友发过来一个存储过程,每天跑一次,单次执行时间略长…… 执行的结果插入到t_error表中,代码及结果数据如下: 下面是优化过程: 优化后代码如下: 把四条反连接的SQL语句合并成一条FULL JOIN语句,性能提升顶多也就4倍!和我们基础优化动辄上1000倍的性能...

2018-08-08 15:14:16

阅读数 103

评论数 1

MySQL主从同步不一致

1.查看从库的报错信息 show slave status \G (hxbmysqladmin@localhost) [(none)]> show slave status \G; *************************** 1. row **************...

2018-08-08 09:47:10

阅读数 410

评论数 0

谓词推入的优化案例

案例很简单,主要就是长…… Sql文本: select count(*) from VIEW_SB_UUUUUUUUUUUUUUUUU where 1 = 1 and (KKKKID in (SELECT orgno FROM PP_OOO...

2018-08-07 17:12:18

阅读数 329

评论数 0

简单的视图合并

简单的视图合并,案例SQL和PLAN如下: SELECT * FROM QQ_VIEW_RRRRRR_FFFFFF WHERE howtime >= 0 And inorout = 1 And Callid like '%13511232777%' AND...

2018-08-07 15:34:22

阅读数 227

评论数 0

关系型数据库通用的坑-自定义函数的优化

自定义函数,和标量子查询一样,在主查询返回结果集(行数N)巨大时,自定义函数里面的查询会被访问N多次…… 自定义函数唯一的适用场景就是 分页查询,其他场景基本上都具有潜在风险,需要改写。 SELECT rrs.o_id, (SELECT min(IFNULL(get_produ...

2018-08-07 10:34:40

阅读数 228

评论数 0

提示
确定要删除当前文章?
取消 删除