#0
by _r2003
Есть запрос к SQL серверу на ADO получить результат в тз проблемы не представляет проблему представляет скорость работы этого дела Посоветуйте что нить может есть способ быстрее? на 7.7 в 1с++ быстрее как они делают?
#5
by _r2003
в общем была обработка загрузки данных на 7.7 теперь она стала из за этого в 5 раз дольше работать. вроде как раньше от процесса было запрос процентов 10 теперь 50%
#6
by Волшебник
Может быть поиграться свойствами RecordSet? или сфорировать более оптимальный запрос?
#7
by _r2003
Может быть и поиграться а в каком направлении копать? запрос проще не куда получить строки документа. Не понятно только почему в 1c++ Это было быстра.
#13
by DmitrOshchepkov
еще, возможно у тебя в ADO используется не тот тип курсора, надо самый быстрый fast forward (на нем кстати MoveFirst не возможно) почитай доку по ADO, я не помню.. это свойствами Recordset управляется а вообще говоря вродебы, если ни чего не трогать, то он и должен был быть по умолчанию fast forward.
#18
by DmitrOshchepkov
:) odbc нельзя использовать в 1с напрямую.. напрямую - только в языках более низкого уровня (с++) В 1с можно использовать только OLE объекты, OLE объектов упаковывающих ODBC интерфейс в чистом виде - нет. В ADO можно использовать OLEDB провайдера для odbc и odbc драйвер для mssql, но это будет еще хуже чем использовать (в том же ADO) OLEDB провайдера для mssql. Вобщем если тип курсора используется тот же, то потери только на интерпретаторе языка высокого уровня (V8).
#21
by _r2003
to 20 ИМХО все операции по выводу и обработке тз буду проходить быстрее так как тз родной объект 1с а recordset нет тесты показали что время как раз отнимает получение значения из recordset а не запись в тз to 18 Спасибо стало понятней жалко что в 1С нет объекта для сиквэл запросов или есть я натыкался на топик что Объект COMSafeArray (COMSafeArray) что то может, это правда?
#24
by DmitrOshchepkov
to 22 и? вероятно стало чуть быстрее.. >>жалко что в 1С нет объекта для сиквэл запросов или есть нет нету, но можно написать ВК.. код будет компилированый, он будет работать заметно быстрее, но тем не менее все равно будет проигрывать 1с++, т.к. там еще используется внутренний интерфейс ТЗ (родного объекта 1с (с++)), что в V8 невозможно. >>COMSafeArray а причем тут он? в OLE один из стандартных передаваемых типов SAFEARRAY этот объект сделан для передачи параметра типа SAFEARRAY при вызове метода некого OLE объекта (если бы этого объекта небыло то такой метод в принципе будет невозможно вызвать, как в V7 например).
#25
by DmitrOshchepkov
++ кроме того, при использовании ADO все идет через ОЛЕ объекты (IDispatch) и варианты (VARIANT), эти преобразования тоже отнимают процессорное время. А в 1с++ я постарался вообще выжать максимум по скорости (нет предела совершенству, конечно, но хотябы прикрыть потенциальные дыры). 19 прав, в данном случае более быстрым будет использование recordset без ТЗ. (однако 19 надо поправить, перебираемый recordset это не массив; в памяти нет всей выборки, она приходит с сервера построчно или по несколько строк)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как быстро очистить 1с 7.7. (dbf)от данных документов и регистров?
- Как сформировать 5 журнал,
- Создание ТЗ с вложенными ТЗ на основании плоской ТЗ методом группир. по колонкам
- 1cv8 SQL: Имя SQL сервера и имя SQL базы данных
- Как быстро найти строку в ТЗ по нескольким колонкам?
- ТЗ.Свернуть для ТЗ в ТЗ
- code128 как сформировать
- Запуск 1С:SQL под пользователем SQL но не SA ?
- Как в УТ 10.2 сформировать счет-фактуру на возврат поставщику?
- Как программно сформировать имя элемента формы ?
- Как перевести базу с SQL Enterprise Edition 2005 в SQL Standart Edition 2008?
- Самый оптимальный способ сформировать из ТЗ другие ТЗ по контрольному столбцу
В этой группе 1С
- v7. ЗиК.... Как должно начислять пособие на ребенка до 1,5 и 3 лет?
- аналог в запросе РегистрСведений..ПолучитьПоследнее()
- EXCEL: данные не воспринимаются как Числа
- В чем принципиальное различие розничных и оптовых складов в 1с8?
- Если в накладной две строки одного и того-же товара ...
- отбор в журнале по префиксу
- Как быстро найти элемент справочника по значению Пер. реквизита?
- Как выгрузить остатки регистра в таблицу значений?
- Сколько документов можно всунуть в одну секунду?
- ЗиК 257 где задать Воинское звание сотруднику?
- Сравнение 2 таблиц значений?
- изменить период расчёта заработной платы
- Как получить GUID базы данных 1С?
- Справочник -> Форма списка -> запрет на редактирование
- Как программно очистить табло?
- А как программно узнать есть ли в документе Идентификатор "Контрагент"?
- ЗиК: Форма Т-54
- Нужен алгоритм набора нужной суммы
- Как получить объект метаданных, зная его "Тип"?
- В гонке DARPA робокары дошли до финиша