![]() |
#1 |
Участник
|
![]()
На одном из клиентов (версия системы 4.0, SQL 2005) стала жутко тормозить форма обработки фактуры по накладной клиента.
Причина - FactureEditLinesEngineCust_RU.dsExecuteMarkup Там в один курсор пытаются вернуть как markupTrans относящиеся к шапке, так и к строкам. Но поскольку обычные подзапросы в аксапте не работают, связка по шапке добавлена внутрь связки по строкам X++: select markupCursor where markupCursor.CustVendPosted_RU && ! markupCursor.ItemPosted_RU exists join tTrans where ( markupCursor.TransTableId == tTrans.TableId && markupCursor.TransRecId == tTrans.RecId && tTrans.SalesId == tJour.SalesId && tTrans.InvoiceId == tJour.InvoiceId && tTrans.InvoiceDate == tJour.InvoiceDate && tTrans.NumberSequenceGroup == tJour.NumberSequenceGroup ) || ( markupCursor.TransTableId == tJour.TableId && markupCursor.TransRecId == tJour.RecId ); SELECT * FROM MARKUPTRANS A WHERE (A.DATAAREAID='exp' AND A.CUSTVENDPOSTED_RU<>0 AND A.ITEMPOSTED_RU=0) AND EXISTS (SELECT 'x' FROM CUSTINVOICETRANS B WHERE (B.DATAAREAID='exp' AND ((A.TRANSTABLEID=64 AND A.TRANSRECID=B.RECID AND B.SALESID='РКЗП-00032212' AND B.INVOICEID='14294-11' AND B.INVOICEDATE='2012-03-13 00:00:00.000' AND B.NUMBERSEQUENCEGROUP='ТД') OR (A.TRANSTABLEID=62 AND A.TRANSRECID=5637435947) ))) Если сделать по нормальному, то все работает быстро. Но как это можно написать в Аксапте одним запросом непонятно. SELECT * FROM MARKUPTRANS A WHERE (A.DATAAREAID='exp' AND A.CUSTVENDPOSTED_RU=0 AND A.ITEMPOSTED_RU=0) AND ((A.TRANSTABLEID=62 AND A.TRANSRECID=5637435947) OR EXISTS (SELECT 'x' FROM CUSTINVOICETRANS B WHERE (B.DATAAREAID='exp' AND ((A.TRANSTABLEID=64 AND A.TRANSRECID=B.RECID AND B.SALESID='РКЗП-00032212' AND B.INVOICEID='14294-11' AND B.INVOICEDATE='2012-03-13 00:00:00.000' AND B.NUMBERSEQUENCEGROUP='ТД') )))) PS: Индексы перестраивались, статистика обновлялась PSS: План запроса во вложении (переименован в txt для загрузки) Последний раз редактировалось malex; 20.03.2012 в 12:39. |
|
|
![]() |
||||
Тема | Ответов | |||
оптимизация запроса статистики по клиенту | 2 | |||
Просмотрщик запросов QueryBrowser DAX 3.0 SP4 | 30 | |||
Оптимизация запросов к БД в коде | 57 | |||
Оптимизация запросов | 6 | |||
Оптимизация запросов | 3 |
|