25.06.2007, 12:33 | #21 |
Участник
|
если скопировать запрос как есть из мониторинга и выполнить его через Management Studio - также долго?
|
|
25.06.2007, 12:43 | #22 |
Участник
|
Цитата:
Цитата:
А вы отвечаете "думаю, что..." Повторяю еще раз: ЗАМЕРЬТЕ. |
|
25.06.2007, 13:17 | #23 |
Участник
|
Цитата:
Что такое Management Studio ?!
__________________
PS. Сложно приехать в Москву, но ещё сложнее уехать отсюда. |
|
25.06.2007, 13:44 | #25 |
Участник
|
Что мне реально может дать этот софт?! Показания Enterprise Managere не достаточно?!
Включил этот же код в качестве прямого запроса отработал за 15 сек
__________________
PS. Сложно приехать в Москву, но ещё сложнее уехать отсюда. Последний раз редактировалось 3oppo; 25.06.2007 в 13:55. |
|
25.06.2007, 13:50 | #26 |
Участник
|
Ничего не даст - это просто ответ на Ваш вопрос "Что такое Management Studio ?!".
Просто в SQL 2005 -- это штатная штука того же назначения что и EM в 2000. Честно говоря, не знаю, что дальше делать. Может попробовать потрассировать ход выполнения запроса при помощи profiler. Или попробовать выполнить запрос при помощи connection (может быть что-то роется в настройках соединения) |
|
25.06.2007, 13:51 | #27 |
Member
|
Цитата:
Включите мониторинг длинных запросов. Посмотрите, действительно ли этот злополучный запрос так долго отрабатывает именно в Аксапте. Запустите профайлер кода, в конце концов. Убедитесь, что время уходит именно на запрос.
__________________
С уважением, glibs® |
|
25.06.2007, 14:15 | #28 |
Участник
|
|
|
25.06.2007, 14:30 | #29 |
Участник
|
На количестве запросов отразилось, я же написал запрос всё таки один. (Там хитро запускался простой select) Но выполняется очень медленно. С простым инкрементом вместо кода.
Цитата:
Что есть время выполнения запроса?! Это время до выхода из полного цикла, или это время до попадания внутрь цикла? Обратил внимание на такую вещь: При АКСАПТАВСКОМ запросе, попадание внутрь цикла происходит быстро ( 5 сек), НО само прохождение по циклу идёт очень медленно, хотя внутри выполняется только i++; При прямом запросе, и попадение внутрь цикла и сам цикл (с кодом i++) делаются очень быстро. Может это как то, кому то, прояснит ситуацию!?
__________________
PS. Сложно приехать в Москву, но ещё сложнее уехать отсюда. |
|
25.06.2007, 14:42 | #30 |
Участник
|
А что это за "прямой запрос"?
Приведите его. PS. Есть подозрение, что это происходит из-за сортировки. Уберите index из запроса.
__________________
Axapta v.3.0 sp5 kr2 |
|
25.06.2007, 14:44 | #31 |
Участник
|
пробуйте указать в запросе используемые поля, т.к. может быть все дело в объеме перекачиваемых данных
ПС попадание внутрь цикла и есть исполнение запроса |
|
25.06.2007, 14:45 | #32 |
Участник
|
И еще - замените первый join на exists join - у вас на каждую проводку для одной и той же номенклатуры возвращается сторока. За счет этого может быть много "холостых" прогонов цикла
__________________
Axapta v.3.0 sp5 kr2 |
|
25.06.2007, 14:53 | #33 |
Участник
|
Как это?!
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++; }
__________________
PS. Сложно приехать в Москву, но ещё сложнее уехать отсюда. Последний раз редактировалось 3oppo; 25.06.2007 в 15:03. |
|
25.06.2007, 14:59 | #34 |
Участник
|
Цитата:
Цитата:
PS. Наберут студентов по объявлению... .. .
__________________
PS. Сложно приехать в Москву, но ещё сложнее уехать отсюда. |
|
25.06.2007, 15:15 | #35 |
Участник
|
Цитата:
Но мне нужны все поля!!!
__________________
PS. Сложно приехать в Москву, но ещё сложнее уехать отсюда. |
|
25.06.2007, 15:20 | #36 |
Участник
|
а если в прямом запросе прокачать все поля через ODBC, останется ли он после этого быстрее встроенного?
|
|
25.06.2007, 15:27 | #37 |
Участник
|
|
|
25.06.2007, 15:52 | #38 |
Участник
|
Цитата:
Сообщение от 3oppo
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++; } У этого запроса даже синтаксис неправильный. |
|
25.06.2007, 17:26 | #39 |
Участник
|
|
|
25.06.2007, 17:31 | #40 |
Участник
|
после res.next пройтись по всем полям в res.metadata и вызвать для каждого res.getString.
Ещенарушена чистота жксперимента использован ODBCConnection вместо Connection |
|
Теги |
производительность, запрос (query), ax3.0 |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|