Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Optymalizacja wydajności Oracle

Jeśli dobrze zrozumiałem, używasz podzapytania korelacji do znajdowania wierszy z więcej niż jednym odrębnym exceptn_criteria_rtrn_val wartość. Jeśli mam rację, lepiej użyję funkcji analitycznej:

select vw.registration_id as REGISTRATION_ID, vw.batch_id as BATCH_ID
from
 (select ss.registration_id as REGISTRATION_ID, ss.batch_id as BATCH_ID
        ,count(distinct sub_query.exceptn_criteria_rtrn_val) over(partition by ss.registration_id, ss.batch_id) as cnt
    from submtd_srvc PARTITION(SUBMTD_SRVC_821370) ss,
         (select a.exceptn_criteria_val, a.exceptn_criteria_rtrn_val
            from EXCEPTN_CRITERIA a, EXCEPTN_EXPRESSION b
           where a.EXCEPTN_EXPRESSION_ID = b.EXCEPTN_EXPRESSION_ID
             and b.EXCEPTN_EXPRESSION_NAME = 'NC_CUSTOM_REV_CAT'
             and b.IS_CURRENT_INDCTR = 1
             and a.IS_CURRENT_INDCTR = 1) sub_query
   where ss.REVENUE_CD = sub_query.exceptn_criteria_val
     and ss.batch_id = 821370) vw
where cnt > 1
Order By vw.Registration_Id, vw.batch_id;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rodzaje indeksów w wyroczni?

  2. dbms_output.put_line

  3. Jak pobrać wartości z zagnieżdżonej procedury Oracle?

  4. Porównanie listy wartości z tabelą

  5. Procedura składowana SQL do sprawdzania wartości tak/nie w tabeli i wykonywania sql