weixin_47074036 2021-04-09 16:00 采纳率: 50%
浏览 521
已采纳

达梦的order by 优化,加过索引

 SELECT 
                        id                           ,
                                        info_id                      ,
                                        model_id                     ,
                                        zb_time_limit                ,
                                        xb_time_limit                ,
                                        time_limit                   ,
                                        work_remark                  ,
                                       ta_code,
                                       title                        ,
                                        send_user_name               ,
                                        create_user_token            ,
                                        entry_id                     ,
                                        work_type                    ,
                                        zb_dept_name              ,
                                        xb_dept_name              ,
                                        zb_deptcode               ,
                                        xb_deptcode               ,
                                        file_class                   ,
                                       transactName,
                                       is_rollback ,
                                        cb_type
                from
                        (
                                SELECT
                                        pf.id                           ,
                                        uk.info_id                      ,
                                        uk.model_id                     ,
                                        pf.zb_time_limit                ,
                                        pf.xb_time_limit                ,
                                        pf.time_limit                   ,
                                        uk.work_remark                  ,
                                           pf.ta_code,
                                        re.title                        ,
                                        uk.send_user_name               ,
                                        uc.create_user_token            ,
                                        uc.entry_id                     ,
                                        uk.work_type                    ,
                                        oldPf.zb_dept_name              ,
                                        oldPf.xb_dept_name              ,
                                        oldPf.zb_deptcode               ,
                                        oldPf.xb_deptcode               ,
                                        pf.file_class                   ,
                                        uc.transact_name          as transactName,
                                        IFNULL(pf.is_rollback, 0) as is_rollback ,
                                        pf.cb_type
                                FROM
                                        hbb_ta_replay re
                                INNER JOIN info_user_work uk
                                ON
                                        re.id = uk.info_id
                                LEFT JOIN gen_hbb_ta_pifen pf
                                ON
                                        re.id = pf.id
                                LEFT JOIN gen_hbb_ta_pifen oldPf
                                on
                                        oldPf.id = pf.ta_pifen_id
                                INNER JOIN info_user_common uc
                                ON
                                        uc.info_id = uk.info_id
                                WHERE
                                        uk.accepter_user_token = '1334412080821866514'
                                    AND uk.is_todo = 0
                                    AND uc.is_finish = 0
                                    AND uk.model_id = '1330058289144143873'
                                    AND pf.ta_pifen_id is not null
                                    AND
                                        (
                                                (
                                                        INSTRB(pf.xb_deptcode, '1334411971094679553')!=0
                                                    and pf.xb_deptcode!=''
                                                    and pf.zb_deptcode = '1334411971094679553'
                                                )
                                             or
                                                (
                                                        (
                                                                INSTRB(pf.xb_deptcode, '1334411971094679553')==0
                                                             or pf.xb_deptcode==''
                                                        )
                                                    and pf.zb_deptcode = oldPf.zb_deptCode
                                                )
                                        )                           
                                UNION ALL
                                SELECT
                                        pf.id                           ,
                                        uk.info_id                      ,
                                        uk.model_id                     ,
                                        pf.zb_time_limit                ,
                                        pf.xb_time_limit                ,
                                        pf.time_limit                   ,
                                        uk.work_remark                  ,
                                      pf.ta_code,
                                        pf.title                        ,
                                        uk.send_user_name               ,
                                        uc.create_user_token            ,
                                        uc.entry_id                     ,
                                        uk.work_type                    ,
                                        pf.zb_dept_name                 ,
                                        pf.xb_dept_name                 ,
                                        pf.zb_deptcode                  ,
                                        pf.xb_deptcode                  ,
                                        pf.file_class                   ,
                                        uc.transact_name          as transactName,
                                        IFNULL(pf.is_rollback, 0) as is_rollback ,
                                        pf.cb_type
                                FROM
                                        gen_hbb_ta_pifen pf
                                INNER JOIN info_user_work uk
                                ON
                                        pf.id = uk.info_id
                                INNER JOIN info_user_common uc
                                on
                                        uc.info_id = uk.info_id
                                    AND uk.model_id = uc.model_id
                                WHERE
                                        uk.accepter_user_token = '1334412080821866514'
                                    AND uk.is_todo = 0
                                    AND uc.is_finish = 0
                                    AND pf.ta_pifen_id is null
                                    AND uk.model_id = '1330050412736159746'
                                    AND pf.id not in
                                        (
                                                select
                                                        IFNULL(pfCopy.ta_pifen_id, 0)
                                                from
                                                        gen_hbb_ta_pifen pfCopy
                                                where
                                                        (
                                                                INSTRB(pfCopy.xb_deptcode, '1334411971094679553')!=0
                                                            and pf.xb_deptcode!=''
                                                            and pfCopy.zb_deptcode = '1334411971094679553'
                                                        )
                                                     or
                                                        (
                                                                (
                                                                        INSTRB(pfCopy.xb_deptcode, '1334411971094679553')==0
                                                                     or pf.xb_deptcode==''
                                                                )
                                                            and pfCopy.zb_deptcode = pf.zb_deptCode
                                                        )
                                        )
                        )
                        order by ta_code

加上order by 响应速度要10秒,不加只要一秒,求大佬怎么优化

  • 写回答

1条回答 默认 最新

  • 沐川 2021-04-10 09:01
    关注

    这个没有优化空间,如果你要排序的话。

    有限优化的方式:

    1、可以增加排序可以使用的内存大小
    2、是否可以把子表union的集合更新到物化视图或者实体表中,建立索引进行使用

    其他优化方式:

    如果是页面展示的情况,可以每个表限制取数条数、

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么