SELECT DISTINCT
A.PATIENT_ID,A.VISIT_ID,B.NAME,B.INP_NO,C.ADMISSION_DATE_TIME,C.DEPT_ADMISSION_TO,C.charge_type,D.DEPT_NAME
FROM INP_BILL_DETAIL A,PAT_MASTER_INDEX B,PAT_VISIT C,DEPT_DICT D
WHERE
(A .PATIENT_ID = B.PATIENT_ID)
AND (A .PATIENT_ID = C.PATIENT_ID) AND (A .VISIT_ID = C.VISIT_ID)
AND A .RCPT_NO IS NULL
AND A .PATIENT_ID NOT IN (SELECT PATIENT_ID FROM PATS_IN_HOSPITAL)
AND SUBSTR (A .ORDERED_BY, 1, 4) = '" + ward_code + @"'
AND D.DEPT_CODE = C.DEPT_ADMISSION_TO
ORDER BY ADMISSION_DATE_TIME desc
A表資料量3000W條,B表70W,C表17W,D表100條,求大神幫忙優化一下
uj5u.com熱心網友回復:
這個得看執行計劃,不然,就是猜。uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
執行計劃貼出來了uj5u.com熱心網友回復:
最大的表走了FTS,建個函式索引試試呢。create index ind_sub_ord14 on INP_BILL_DETAIL(SUBSTR (ORDERED_BY, 1, 4));
uj5u.com熱心網友回復:
A表全表掃描,看看有沒有可利用的索引,如果ORDERED_BY是索引的話,建議改成like,或者像樓上說的建一個函式索引。另外A.PATIENT_ID、B.PATIENT_ID、C.PATIENT_ID、A.VISIT_ID 、C.VISIT_ID最好是索引
當然,最終要根據業務實際情況判斷,表索引不能太多
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/9967.html
標籤:基礎和管理
上一篇:求助各位
