Oracle PL / SQL Developer, разница в производительности PHP Laravel - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть приложение Laravel, которое генерирует отчеты о ~ 3 тыс. Строк с сервера Oracle 11g db для работы в устаревшей системе.У моего коллеги также есть приложение asp.net для другого отчета.У нас обоих иногда возникают сбои при создании наших отчетов, но когда я генерирую свой отчет с помощью PL / SQL Developer, это занимает всего 3-10 минут, в то время как laravel требует времени отклика 10 м-1 час.Я изо всех сил пытался решить эту проблему, например, предоставляя 3 ГБ ограничения памяти, но это бесполезно.

Как мне найти основную причину этой проблемы?

Laravel 7 x86

OCI 11g

EDIT ..

Я использую один и тот же запрос для запуска в приложении laravel и в PL / SQL Developer.

UPDATE ..

Вот запрос, с которым у меня возникли проблемы.

SELECT *
    FROM (select 'LOANS' MODULE,
                 a.branchid,
                 a.loanno AGREEMENTID,
                 NULL ACCOUNTID,
                 a.voucherid,
                 a.voucherdate,
                 b.groupglid,
                 b.groupgldesc,
                 a.dramt,
                 a.cramt,
                 A.NARRATION
            from FV_FINLEA.FINAL_VOUCHER_BREAKUP_DTL a,
                 FV_CASM.fa_groupgl_m                b,
                 FV_FINLEA.NBFC_VOUCHER_HDR          H
           where a.groupglid = b.groupglid
             AND A.VOUCHERID = H.VOUCHERID
             AND A.BRANCHID = H.BRANCHID
             AND A.MODULEID = 'LEA'
             AND A.VOUCHERDATE =
                 (SELECT CURRENTDATE FROM FV_FINSEC.NBFC_PARAMETER_M)
          UNION ALL
          select 'LOANS' MODULE,
                 a.branchid,
                 a.loanno AGREEMENTID,
                 NULL ACCOUNTID,
                 a.voucherid,
                 a.voucherdate,
                 b.groupglid,
                 b.groupgldesc,
                 a.dramt,
                 a.cramt,
                 A.NARRATION
            from FV_FINLEA.FINAL_VOUCHER_BREAKUP_DTL a,
                 FV_CASM.fa_groupgl_m                b,
                 FV_FINTLR.NBFC_VOUCHER_HDR          H
           where a.groupglid = b.groupglid
             AND A.VOUCHERID = H.VOUCHERID
             AND A.BRANCHID = H.BRANCHID
             AND A.MODULEID = 'TLR'
             AND A.VOUCHERDATE =
                 (SELECT CURRENTDATE FROM FV_FINSEC.NBFC_PARAMETER_M)
          UNION ALL
          select 'SD' MODULE,
                 a.branchid,
                 NULL AGREEMENTID,
                 a.accountid,
                 a.voucherid,
                 a.voucherdate,
                 b.groupglid,
                 b.groupgldesc,
                 a.dramt,
                 a.cramt,
                 A.NARRATION
            from FV_FINDEP.FD_FINAL_VOUCHER_BREAKUP_DTL a,
                 FV_CASM.fa_groupgl_m                   b,
                 FV_FINDEP.NBFC_VOUCHER_HDR             H
           where a.groupglid = b.groupglid
             AND A.VOUCHERID = H.VOUCHERID
             AND A.BRANCHID = H.BRANCHID
             AND EXISTS
           (SELECT 1
                    FROM FV_FINDEP.SD_DEPOSIT_M C
                   WHERE A.ACCOUNTID = C.ACCOUNTID)
             AND A.VOUCHERDATE =
                 (SELECT CURRENTDATE FROM FV_FINSEC.NBFC_PARAMETER_M)
          UNION ALL
          select 'SD' MODULE,
                 a.branchid,
                 NULL AGREEMENTID,
                 a.accountid,
                 a.voucherid,
                 a.voucherdate,
                 b.groupglid,
                 b.groupgldesc,
                 a.dramt,
                 a.cramt,
                 A.NARRATION
            from FV_FINDEP.FD_FINAL_VOUCHER_BREAKUP_DTL a,
                 FV_CASM.fa_groupgl_m                   b,
                 FV_FINTLR.NBFC_VOUCHER_HDR             H
           where a.groupglid = b.groupglid
             AND A.VOUCHERID = H.VOUCHERID
             AND A.BRANCHID = H.BRANCHID
             AND EXISTS
           (SELECT 1
                    FROM FV_FINDEP.SD_DEPOSIT_M C
                   WHERE A.ACCOUNTID = C.ACCOUNTID)
             AND A.MODULEID = 'TLR'
             AND A.VOUCHERDATE =
                 (SELECT CURRENTDATE FROM FV_FINSEC.NBFC_PARAMETER_M)
          UNION ALL
          select 'FD' MODULE,
                 a.branchid,
                 NULL AGREEMENTID,
                 a.accountid,
                 a.voucherid,
                 a.voucherdate,
                 b.groupglid,
                 b.groupgldesc,
                 a.dramt,
                 a.cramt,
                 A.NARRATION
            from FV_FINDEP.FD_FINAL_VOUCHER_BREAKUP_DTL a,
                 FV_CASM.fa_groupgl_m                   b,
                 FV_FINDEP.NBFC_VOUCHER_HDR             H
           where a.groupglid = b.groupglid
             AND A.VOUCHERID = H.VOUCHERID
             AND A.BRANCHID = H.BRANCHID
             AND EXISTS
           (SELECT 1
                    FROM FV_FINDEP.FD_DEPOSIT_M C
                   WHERE A.ACCOUNTID = C.ACCOUNTID)
             AND A.VOUCHERDATE =
                 (SELECT CURRENTDATE FROM FV_FINSEC.NBFC_PARAMETER_M)
          UNION ALL
          select 'FD' MODULE,
                 a.branchid,
                 NULL AGREEMENTID,
                 a.accountid,
                 a.voucherid,
                 a.voucherdate,
                 b.groupglid,
                 b.groupgldesc,
                 a.dramt,
                 a.cramt,
                 A.NARRATION
            from FV_FINDEP.FD_FINAL_VOUCHER_BREAKUP_DTL a,
                 FV_CASM.fa_groupgl_m                   b,
                 FV_FINTLR.NBFC_VOUCHER_HDR             H
           where a.groupglid = b.groupglid
             AND A.VOUCHERID = H.VOUCHERID
             AND A.BRANCHID = H.BRANCHID
             AND EXISTS
           (SELECT 1
                    FROM FV_FINDEP.FD_DEPOSIT_M C
                   WHERE A.ACCOUNTID = C.ACCOUNTID)
             AND A.MODULEID = 'TLR'
             AND A.VOUCHERDATE =
                 (SELECT CURRENTDATE FROM FV_FINSEC.NBFC_PARAMETER_M)
          UNION ALL
          select 'TLR' MODULE,
                 a.branchid,
                 NULL AGREEMENTID,
                 NULL ACCOUNTID,
                 A.VOUCHERID,
                 A.VOUCHERDATE,
                 b.groupglid,
                 b.groupgldesc,
                 a.dramt,
                 a.cramt,
                 F.NARRATION
            from FV_FINTLR.nbfc_voucher_dtl A,
                 FV_CASM.fa_groupgl_m       b,
                 FV_FINTLR.NBFC_VOUCHER_HDR F
           where a.groupglid = b.groupglid
             AND A.VOUCHERID = F.VOUCHERID
             AND A.BRANCHID = F.BRANCHID
             and a.status IN ('A', 'P')
             and not exists (select 1
                    from FV_FINDEP.fd_final_voucher_breakup_dtl E
                   where a.voucherid = E.voucherid
                     AND A.BRANCHID = E.BRANCHID)
             and not exists
           (select 1
                    from FV_FINLEA.final_voucher_breakup_dtl E1
                   where a.voucherid = E1.voucherid
                     AND A.BRANCHID = E1.BRANCHID)
             AND A.VOUCHERDATE =
                 (SELECT CURRENTDATE FROM FV_FINSEC.NBFC_PARAMETER_M)
          UNION ALL
          select 'FA' MODULE,
                 A.BRANCHID,
                 NULL AGREEMENTID,
                 NULL ACCOUNTID,
                 A.VOUCHERID,
                 A.VOUCHERDATE,
                 b.groupglid,
                 b.groupgldesc,
                 a.dramt,
                 a.cramt,
                 G.NARRATION
            from FV_FINFA.FA_voucher_dtl a,
                 FV_CASM.fa_groupgl_m    b,
                 FV_FINFA.FA_VOUCHER_HDR G
           where a.groupglid = b.groupglid
             AND A.VOUCHERID = G.VOUCHERID
             AND A.BRANCHID = G.BRANCHID
             and a.status IN ('A', 'P')
             AND A.MODULEID = 'FA'
             AND A.VOUCHERDATE =
                 (SELECT CURRENTDATE FROM FV_FINSEC.NBFC_PARAMETER_M)
             AND G.APPROVEDBY IS NOT NULL) XXX
   WHERE XXX.BRANCHID = 2--ENTER BRANCHID HERE
   ORDER BY XXX.BRANCHID, XXX.MODULE, XXX.VOUCHERDATE, XXX.VOUCHERID
...