プロシージャに入れるクエリがあり、ID のレポートを作成します。私のクエリのWHERE
節 (内部ビューのものではない) が、長時間の実行時間の原因です。このクエリには約 がかかりますtwelve minutes
。実行時間を短縮するためのヒントがあれば教えてください。balance = 0
または、クエリではなく、プロシージャの pl/sql コードにある場合、レコード/行を表示しない方法がある場合でも。
SELECT x.arp_person_id AS student_id,
xf_ar_charges(x.arp_person_id, '2008FL') as charges,
xf_ar_pymts(x.arp_person_id,'2008FL') as payment,
(xf_ar_charges(x.arp_person_id, '2008FL')
- (xf_ar_pymts(x.arp_person_id,'2008FL')) AS balance
FROM (select distinct arp_person_id
from ar_payments
WHERE arp_fa_transmittal IS NOT NULL
AND ('N' = 'N' OR arp_date BETWEEN TO_DATE('11/01/2008','MM/DD/YYYY')
AND TO_DATE('12/31/2008','MM/DD/YYYY'))
AND ('Y' = 'N' OR arp_term IN ('2008FL', 'N')) ) x
WHERE (xf_ar_charges(x.arp_person_id, '2008FL')
- (xf_ar_pymts(x.arp_person_id,'2008FL')) != 0;