SQL报表.二开案例.分析SQL脚本运行慢问题

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

SQL报表.二开案例.分析SQL脚本运行慢问题

【场景】分析SQL报表运行慢问题 【步骤】获取运行的真实SQL,在数据库运行看执行计划 通过APM获取[APM](https://wenku.my7c.com/article/145480274074763008?productLineId=1&isKnowledge=2) ![Image_20230119172527.webp](/download/01000edb0036ce414779a7e268cb36a7b7dc.webp) 通过数据库监控获取[数据库](https://wenku.my7c.com/article/93398725082314496?productLineId=1&isKnowledge=2) ![Image_20230119172807.webp](/download/0100ed4bb2cbe7d747eea3a6106c03632c6e.webp) 【优化方案】 <1>即使是普通查询,当逻辑过于复杂时,建议勾选创建时的【存储过程】; ![Image_20230119170845.webp](/download/01005e60498350aa4d1894d550bf48cbcd1c.webp) 普通查询逻辑:平台会在外层嵌套生成一个临时表做分页查询,用作每次翻译时仅取部分数据,减少服务器需要的内存 存错过程查询逻辑:直接使用sql查询,第一次加载就加载全部的数据,(如果数据量非常大时就会消耗很多应用服务器的内存资源) <2>分析SQL脚本在数据库运行的执行计划 a)查看执行计划 ![image.webp](/download/01009f3d02a194964cf6a553a13b7555776c.webp) b)找出执行计划资源损耗最严重的点,如查找流量最大的线(数量);(系统推荐索引针对复杂sql不准) **一般线条比较粗的就代表关联数量比较大**; ![image.webp](/download/0100ff8f45018c334bb8adb1e69cc9635a02.webp) 此案例中查询数据1900w,外层为嵌套循环,内层为扫描,本质就是o(m*n) c)可选:简化慢逻辑sql,定位确实是否为此联查慢 ![image.webp](/download/01001e75e60512f949d4bbd477a252f84827.webp) d)增加索引优化: ```sql create index IDX_SD_ZNTRUCK_BillNO on T_SD_ZNTRUCK (fbillno) ``` 【备注】 <1>开发sql账表,不止应该维护sql查询语句,还有根据业务量,预定好索引,系统创建的表默认只有主外键有索引,以及业务的自定义索引;针对二开字段,一定要自行维护索引 <2>针对没有索引的字段,有时使用嵌套循环,有时使用哈希匹配,均为数据库针对没有索引的逻辑自行优化计算; 因此为了避免偶发查询慢问题,最好确认场景增加索

SQL报表.二开案例.分析SQL脚本运行慢问题

【场景】分析SQL报表运行慢问题【步骤】获取运行的真实SQL,在数据库运行看执行计划通过APM获取[APM](https://wenku.my7c.com/article/1454...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息