我有一個自定義表單,其中包含以下數據源設置;添加外部聯接數據源時的表現性能
SalesTable
SalesLine (SalesTable - Inner Join)
InventTable (SalesLine - Inner Join)
InventDim (SalesLine - Inner Join)
...它工作沒有任何性能問題。
當我添加以下;
InventHazardousGroup (InventTable - Outer Join)
...我看到在我們的開發環境沒有任何性能問題,但是在生產環境中的查詢是非常緩慢的,這意味着表格需要很長的時間來加載。
SQL語句跟蹤日誌在兩種環境中都生成以下輸出:
(我已經結束了等字段列表,因爲它很長);
SELECT A.SALESID,A.SALESNAME,A.RESERVATION,A.CUSTACCOUNT,A.INVOICEACCOUNT,A.DELIVERYDATE,A.DELIVERYADDRESS,A.URL,A.PURCHORDERFORMNUM,A.SALESTAKER,A.SALESGROUP,A.FREIGHTSLIPTYPE,A.DOCUMENTSTATUS,A.INTERCOMPANYORIGINALSALESID,etc
FROM {OJ INVENTTABLE C LEFT OUTER JOIN INVENTHAZARDOUSGROUP E ON ((E.DATAAREAID=?)
AND (C.HAZARDOUSGROUPID=E.HAZARDOUSGROUPID))},SALESTABLE A,SALESLINE B,INVENTDIM D
WHERE ((A.DATAAREAID=?)
AND (A.SALESTYPE=?))
AND ((B.DATAAREAID=?)
AND (A.SALESID=B.SALESID))
AND ((C.DATAAREAID=?)
AND (B.ITEMID=C.ITEMID))
AND ((D.DATAAREAID=?)
AND (B.INVENTDIMID=D.INVENTDIMID))
ORDER BY A.DATAAREAID,A.SALESID OPTION(FAST 1)
是否有任何理由在一個環境中應該如此緩慢而在另一個環境中呢?我在開發環境中測試的數據相當新,大約1個月大。在不同的公司中,我在生產環境中具有相同的性能問題。
可能值得注意的是,要在表單上完成此操作,可以使用以下語法:'salesTable_ds.query( ).literals(真);' –