达梦的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、可以增加排序可以使用的内存大小
2、是否可以把子表union的集合更新到物化视图或者实体表中,建立索引进行使用

其他优化方式:

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