簡體   English   中英

如何調整此查詢?

[英]How to tune this query?

我正在計算資源成本:

        SELECT NVL(sum(WT.TRANSACTION_QUANTITY* WTA.RATE_OR_AMOUNT),0) 
        --    INTO l_resource_cost
        FROM APPS.WIP_TRANSACTION_ACCOUNTS WTA, APPS.WIP_TRANSACTIONS WT
        WHERE WTA.TRANSACTION_ID = WT.TRANSACTION_ID
        AND WTA.ORGANIZATION_ID = WT.ORGANIZATION_ID
        AND WTA.ACCOUNTING_LINE_TYPE =7
        AND WTA.WIP_ENTITY_ID = 1757957
        AND wt.operation_seq_num = 10;

這些表是Oracle ebs WIP表,數據正確,但是需要對數千條記錄執行。

我該如何調整?

我可以在這里附上解釋計划嗎?

首先,學習使用正確的顯式JOIN語法。 簡單規則: 請勿FROM子句中使用逗號:

SELECT COALESCE(sum(WT.TRANSACTION_QUANTITY * WTA.RATE_OR_AMOUNT), 0) 
        --    INTO l_resource_cost
FROM APPS.WIP_TRANSACTION_ACCOUNTS WTA JOIN
     APPS.WIP_TRANSACTIONS WT
     ON WTA.TRANSACTION_ID = WT.TRANSACTION_ID AND
        WTA.ORGANIZATION_ID = WT.ORGANIZATION_ID
WHERE WTA.ACCOUNTING_LINE_TYPE = 7 AND WTA.WIP_ENTITY_ID = 1757957 AND
      wt.operation_seq_num = 10;

索引將有助於查詢。 我建議:

  • APPS.WIP_TRANSACTION_ACCOUNTS(ACCOUNTING_LINE_TYPE, WIP_ENTITY_ID, RATE_OR_AMOUNT)
  • APPS.WIP_TRANSACTIONS(TRANSACTION_ID, ORGANIZATION_ID, operation_seq_num, TRANSACTION_QUANTITY)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM