Показать сообщение отдельно
Старый 25.06.2007, 14:53   #33  
3oppo is offline
3oppo
Участник
Аватар для 3oppo
 
222 / 32 (2) +++
Регистрация: 30.06.2005
Цитата:
Сообщение от 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 из запроса.
ПРОБОВАЛ! Не помогает!

Последний раз редактировалось 3oppo; 25.06.2007 в 15:03.