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

浙公网安备 33010602011771号