У меня есть пользовательская форма со следующей настройкой Datasource;Производительность формы при добавлении Outer Join DataSource
SalesTable
SalesLine (SalesTable - Inner Join)
InventTable (SalesLine - Inner Join)
InventDim (SalesLine - Inner Join)
... который работает без каких-либо проблем с производительностью.
Когда я добавляю следующее;
InventHazardousGroup (InventTable - Outer Join)
... Я не вижу никаких проблем с производительностью в среде разработки, однако в производственной среде запрос ужасно медленно, что означает, что форма занимает много времени для загрузки.
Журнал трассировки SQL Statement выдал следующий результат в обеих средах;
(Я закончил список полей с и так далее, потому что он длинный);
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 (истинные); ' –