smile5310 2021-12-06 15:09 采纳率: 0%
浏览 13

加嵌套语句后查询时间从0.7秒增加到了6分钟,请问是什么原因?

SELECT 
               zy.zyh AS 住院号, 
               zy.xm AS 姓名, 
               zy.nl||f_getsjzd(zy.nldwid) AS 年龄,
               f_getbmmc(zy.ryksid) AS 入院科室,f_getbmmc(zy.dqksid) AS 出院科室 ,zy.ryrq AS 入院时间,zy.cyrq AS 出院日期, f_getryxm( zy.zyys) AS 住院医师, 
               DECODE( cb.sfsslcljgl,1,'未填写',0,'否',2,'中医',NULL,'未填写','西医') AS 是否实施临床路径管理, 
               DECODE( cb.sfwclclj,1,'是',0,'否','未填写') AS 是否完成临床路径管理, 
               DECODE( cb.sfby,1,'是',0,'否','未填写') AS 是否变异
FROM lcyhgl_bazy zy , lcyhgl_bazycb cb
WHERE zy.id = cb.bazyid
AND zy.cyrq<='2021-11-30 23:59:59'
AND zy.zt IN(1,3)
ORDER BY zy.ryrq ASC

这个语句查询只需要0.7秒,但是加入了嵌套语句,查询时间6分多钟,请问是我写的语句有问题吗?

 

 

SELECT 
               zy.zyh AS 住院号, 
                             zy.xm AS 姓名, 
                             zy.nl||f_getsjzd(zy.nldwid) AS 年龄,
                             NVL((SELECT jbbm FROM lcyhgl_brzdjl WHERE zyh = zy.zyh AND zdlx = 331 AND xh = 1 AND ROWNUM = 1),'-') AS 入院诊断编码,
                             NVL((SELECT  zdms FROM lcyhgl_brzdjl WHERE zyh = zy.zyh AND zdlx = 331 AND xh = 1 AND ROWNUM = 1),'-') AS 入院诊断名称,
                             NVL((SELECT jbbm FROM lcyhgl_brzdjl WHERE zyh = zy.zyh AND zdlx = 478 AND xh = 1),'-') AS 出院诊断编码,
                             NVL((SELECT  zdms FROM lcyhgl_brzdjl WHERE zyh = zy.zyh AND zdlx = 478 AND xh = 1),'-') AS 出院诊断名称,

               f_getbmmc(zy.ryksid) AS 入院科室,f_getbmmc(zy.dqksid) AS 出院科室 ,zy.ryrq AS 入院时间,zy.cyrq AS 出院日期, f_getryxm( zy.zyys) AS 住院医师, 
               DECODE( cb.sfsslcljgl,1,'未填写',0,'否',2,'中医',NULL,'未填写','西医') AS 是否实施临床路径管理, 
                             DECODE( cb.sfwclclj,1,'是',0,'否','未填写') AS 是否完成临床路径管理, 
                             DECODE( cb.sfby,1,'是',0,'否','未填写') AS 是否变异
FROM lcyhgl_bazy zy , lcyhgl_bazycb cb
WHERE zy.id = cb.bazyid
AND zy.cyrq<='2021-11-30 23:59:59'
AND zy.zt IN(1,3)
AND zy.dqksid<>302
ORDER BY zy.ryrq ASC

  • 写回答

1条回答 默认 最新

  • 爱在凌晨 2022-02-24 08:54
    关注

    你可以把这四个查询放到后面,用left join 去查询试试,应该会快一点, 你前面的查询话0.7秒,也不算快了,该加索引的加上索引

    评论

报告相同问题?

问题事件

  • 专家修改了标签 2月24日
  • 创建了问题 12月6日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!