Цитата:
Сообщение от
Ed1k
Разница в планах выполнения может быть, хинты запроса одинаковые?
Как это?!
Цитата:
Сообщение от
AndyD
А что это за "прямой запрос"?
Приведите его.
X++:
odbc = new ODBCConnection(lp);
statement = odbc.createStatement();
ip4 = NoYes::Yes;
ip2 = RAssetTransType::Acquisition;
ip3 = VGP_LedgerLinkModuleRef::RAsset;
select it;
queryText =
strfmt(
"SELECT * FROM RASSETTABLE"
+ "FROM vgp_sql.RASSETTABLE A INNER JOIN"
+ " vgp_sql.RASSETTRANS B ON A.ACCOUNTNUM = B.ACCOUNTNUM INNER JOIN"
+ " dbo.LEDGERTRANS C ON B.VGP_LEDGERLINKID = C.VGP_LEDGERLINKID AND B.VOUCHER = C.VOUCHER AND"
+ " B.TRANSDATE = C.TRANSDATE"
+ " WHERE (A.DATAAREAID = 'vgp') AND (A.VGP_PROPERTYTAX = %4) AND (B.DATAAREAID = 'vgp') AND (B.ASSETTRANSTYPE = %2) AND"
+ " (B.TRANSDATE <= CONVERT(DATETIME, %1, 102)) AND (C.DATAAREAID = 'vgp') AND (C.VGP_LEDGERLINKMODULEREF = %3)"
+ " ORDER BY A.DATAAREAID, A.ACCOUNTNUM, B.DATAAREAID, B.ACCOUNTNUM, B.ASSETTRANSTYPE, C.DATAAREAID, C.VGP_LEDGERLINKID,"
+ " C.VGP_LEDGERLINKMODULEREF OPTION (FAST 4)"
, date2str( reportDateEnd,321,2,4,2,4,4), ip2, ip3, ip4, CurExt() );
odbc.ttsbegin();
res = statement.executeQuery(queryText);
while(res.next())
{
i++;
}
Цитата:
Сообщение от
AndyD
PS. Есть подозрение, что это происходит из-за сортировки. Уберите index из запроса.
ПРОБОВАЛ! Не помогает!