随笔分类 -  sql 优化

摘要:本案例比较复杂,最难以理解的是 case when 那段父子分层关系和父子继承关系。 读者不必完全搞懂本文中所有细节,只需要大致理解笔者逻辑思路即可。 同事上午找我看条SQL,原SQL查询语句很简单,内部视图嵌套很复杂(视图嵌套了3层左右)。 SQL整体执行时间10多秒,执行计划几千行,这里不提供原 阅读全文
posted @ 2023-12-07 15:33 小至尖尖 阅读(544) 评论(0) 推荐(2)
摘要:同事最近做个金融适配项目,找我看条SQL,告知ORACLE跑1分钟,PG要跑30分钟(其实并没有这么夸张)😎, 废话不说,贴慢SQL。 慢SQL(关键信息已经加密): explain analyze SELECT c_qxxxxaode, '2023-03-22 00:00:00' AS d_cd 阅读全文
posted @ 2023-12-04 01:34 小至尖尖 阅读(470) 评论(2) 推荐(1)
摘要:今天同事给我一条5秒的SQL看看能不能优化。 表数据量: select count(1) from AAAA union all select count(1) from XXXXX; count 1000001 998000 (2 rows) 原始SQL: SELECT A1.PK_DEPT, A 阅读全文
posted @ 2023-11-23 03:30 小至尖尖 阅读(1201) 评论(1) 推荐(2)
摘要:同事今天晋级高级工程师考试,发来一道公司出题目让我帮忙进行优化,其中场景二的案例非常有意思😉。 题目内容如下: 原始SQL: scott=> explain analyze scott-> select scott-> a.id, scott-> a.col2, scott-> (select s 阅读全文
posted @ 2023-11-10 00:42 小至尖尖 阅读(3257) 评论(16) 推荐(13)
摘要:最近优化了不少SQL,简单的SQL顺手搞了不好意思发出来了忽悠人,复杂很考验逻辑思维的,但是又不想分享出来(自己收藏的案例),怕被人抄袭思路🤭。 今天遇到一条很有意思的SQL案例: 性能SQL(金融行业关键信息已经隐藏): SELECT CS.BRANCHCODE, (SELECT DISTINC 阅读全文
posted @ 2023-11-07 15:02 小至尖尖 阅读(1283) 评论(0) 推荐(2)
摘要:GoldenDB哥们今天他在营运商遇到2条性能慢的SQL,说找了好多专家老手看了都优化不了,然后就找到我打算给我玩玩。😊 第一次接触营运商行业的SQL,妈呦还真的复杂😂 SQL1: SELECT WORK_ORDER_ID as workOrderId, WORK_ITEM_ID as work 阅读全文
posted @ 2023-09-05 16:33 小至尖尖 阅读(1061) 评论(0) 推荐(1)
摘要:最近在适配个MySQL应用的项目,各种SQL改成PG兼容的语法真的是脑壳痛,今天遇到个有意思的案例。 原 MySQL SQL语句: SELECT DISTINCT l.MALL_NAME '项目', t.CONT_NO '合同编号', t.COMPANY_NAME '租户', t.STORE_NOS 阅读全文
posted @ 2023-07-27 22:01 小至尖尖 阅读(673) 评论(1) 推荐(0)
摘要:案例1: -- 原SQL + 执行计划: explain analyze SELECT G.PID, G.FLOW_ID, G.STATUS, G.ID, AAAAAA.INFO_ID, G.CREATE_UNAME, AAAAAA.FLOW_TIME, G.CREATE_DEPTNAME, G.B 阅读全文
posted @ 2023-06-26 02:37 小至尖尖 阅读(248) 评论(0) 推荐(0)
摘要:周总找我问个报表SQL实现逻辑的案例,废话不说给他看看。 原SQL: SELECT d.tname 姓名, d.spname 岗位, d.sum_cnt 报单单量, d.min_cnt 放款单量, d.date 月份 FROM (SELECT * FROM (SELECT a.zts_name tn 阅读全文
posted @ 2023-06-01 12:58 小至尖尖 阅读(253) 评论(0) 推荐(0)
摘要:OB一哥们找我优化条SQL,反馈在OceanBase存储过程执行时间很慢,需要626秒才能出结果,安排。 INSERT INTO insurance_stat_sx (id, stat_date, cal_num, underwrite_num, veh_num, effect_num, effec 阅读全文
posted @ 2023-05-16 23:02 小至尖尖 阅读(597) 评论(0) 推荐(2)
摘要:因数广政务云华为业务存储固件升级,导致数据库产生坏块,业务SQL查询报错如下: ERROR: missing chunk number 0 for toast value 38166585 in SYS_TOAST_30170 CONTEXT: PL/SQL function inline_code 阅读全文
posted @ 2023-05-12 20:42 小至尖尖 阅读(247) 评论(0) 推荐(0)
摘要:没错,又是京华的开发老哥,这次找我问个SQL实现逻辑的案例。 我博客的案例基本都是他给我的,真的是又要帮他优化SQL还要教他实现SQL逻辑。 开发老哥写的SQL: SELECT ROW_NUMBER() OVER (ORDER BY X.OBJ_CODE ASC) AS row_number,X.* 阅读全文
posted @ 2023-04-24 20:27 小至尖尖 阅读(129) 评论(0) 推荐(0)
摘要:OB一哥们找我优化条SQL,反馈在OceanBase执行时间很慢需要 3184s才能出结果,安排。 原SQL: select M.POLICY_CHARGE_ID as policyChargeId, M.POLICY_NO as policyNo, M.ENDORSE_NO as endorseN 阅读全文
posted @ 2023-04-23 16:54 小至尖尖 阅读(157) 评论(0) 推荐(0)
摘要:京华开发一哥们找我优化条SQL,反馈在DM数据库执行时间很慢需要 40s 才能出结果,安排。 原SQL: SELECT A.IND_CODE, A.IND_NAME AS "specialName", COUNT(C.ORDER_ID) AS "orderCount", COUNT(CASE WHE 阅读全文
posted @ 2023-04-21 22:15 小至尖尖 阅读(195) 评论(0) 推荐(0)
摘要:查询优化器对子查询一般采用嵌套执行的方式,即父查询中的每一行,都要执行一次子查询,这样子查询会执行很多次,效率非常低。 例如 exists、not exists 逐行取出经行匹配处理,项目中使用子查询的地方非常多,如何写出高效的sql,掌握子查询的优化是非常有必要的。 一、需要了解的概念: Post 阅读全文
posted @ 2023-03-18 00:04 小至尖尖 阅读(276) 评论(0) 推荐(1)
摘要:最近帮忙在搞一个内网报表系统的项目,里面的逻辑比较复杂,很多视图套视图的语句。 最多的一个视图除了它本身以外,一层层嵌套了7个视图在里面,贼恶心。 SQL遇到性能问题只能每一层视图捋清对象关系来排查缓慢的原因,只看执行计划根本行不通,慢的语句根本跑不出结果。 这两天就遇到个很郁闷的问题,查询视图慢得 阅读全文
posted @ 2023-02-22 22:11 小至尖尖 阅读(432) 评论(1) 推荐(0)
摘要:同事提供一条SQL,原执行时间需要 3.6S ,反馈比较慢需要优化一下,废话不说贴SQL: 原SQL: select ((select count(1) FROM AAAAAAAAA wf join BBBBBBBBBB procinst on procinst.id_ = wf.proc_inst 阅读全文
posted @ 2023-01-30 17:35 小至尖尖 阅读(247) 评论(0) 推荐(0)
摘要:川川找我优化SQL,逻辑读达到398,000,安排一下。 SQL和执行计划: SELECT t1.*, t3.bed_number, t3.patient_name, t4.name FROM odw_checkrecipe_result t1 left join lenovo_his.ip_pat 阅读全文
posted @ 2023-01-17 20:06 小至尖尖 阅读(895) 评论(0) 推荐(0)
摘要:同事找我优化SQL,同一条SQL语句LIKE过滤条件不同,执行时间差别很多,废话不说安排一下。 LIKE过滤条件执行快的SQL和执行计划: EXPLAIN ANALYZE SELECT case_id, cate_id, cate_name, view_url, proc_ins_id, creat 阅读全文
posted @ 2023-01-10 22:07 小至尖尖 阅读(495) 评论(0) 推荐(0)
摘要:DM一哥们找我优化条分页的SQL语句,结果集很小返回99行数据,废话不说安排一下。 原始SQL语句如下,保密要求,给真实的表名换了别名: SELECT count(*) FROM (SELECT TMP.*, ROWNUM ROW_ID FROM (select * from (select pp. 阅读全文
posted @ 2023-01-03 20:58 小至尖尖 阅读(581) 评论(0) 推荐(1)