#0
by Lepochkin
Добрый день, всем. Есть такая задачка. Имеется база SQL. К ней я делаю запрос и получаю данные. Далее эти данные помещаю с таблица значений, таблицу значений передаю как параметр в запрос 1совский и дальше с ней работаю. Дак вот табличка с данными стала ну уж очень большой, и уходит порядка получаса для того, что бы прямым перебором ее запихать в таблицу значений. Есть ли как-нибудь другой способ? Внешний источник данных пробовал. Ничего хорошего.
#5
by ice777
примерно так: Вставка = "бла-бла первый запрос" Второй запрос = "......"+ Вставка + "....."
#7
by ДенисЧ
хм.... А дайте код создание временной таблицы в скуле, чтобы к ней потом запросом 1с можно было обратиться.... И да, код вытяжки покажи....
#8
by Lepochkin
Вот как бы из скуля по временную таблицу 1ски сделать. хочу знать 4 миллиона записей сейчас и прогнозируется рост Не понял Тут все наверное стандартно Если НЕ RecordSet.EOF Тогда
#9
by ДенисЧ
измени вот эту строку RecordSet.Fields(RecordSet.Fields.Item(НомерКолонки).Name).Value; перед циклом получай все элементы Fields в переменные. Намного быстрее будет.
#12
by Lepochkin
Как-то так получилось. Вроде работает Для НомерКолонки = 0 По RecordSet.Fields.Count-1 Цикл Вечером посмотрим прирост в скорости. Есть еще какие-нибудь варианты ускорения?
#14
by Зеленый пень
Эти 4 млн. строк в SQL часто обновляются? Если нет, то я бы тащил только новые и добавлял их в рег.сведений в базе 1С. Можно делать такое обновление РС в фоновом режиме. А запрос по РС строить.
#16
by МихаилМ
читайте про метод ado getrows если 1с - клиент- серверная , то можно в таблицы бд 1с (РС)записать обработать, затем очистить можно ускорить чтение данных из скл если написать clr-метод который превратит выборку в тз спрятанную в хранилище Значений
#19
by Lepochkin
Собственно так и делаю. Получаю данные раз в день, пишу только изменения в регистр, а пользователи уже с регистром работают. Задание стало работать 40 минут. Из них 30 получение данных. Пока еще все терпимо, доводить нетерпимо не хочется.
#20
by Зеленый пень
Не совсем понятно. Если получение данных сделать заранее - то останется только отчет построить, т.е. 10 сек.
#21
by Cyberhawk
Храни в приемнике дату актуальности таблицы, а из источника получай только записи, которые актуальнее даты актуальности приемника. Ну, это прокатит, если во внешнем источнике есть timastamp
#23
by Lepochkin
с getrows вот такой косяк. Ошибка при вызове метода контекста (GetRows) COMSafeArray = RecordSet.GetRows; по причине: Произошла исключительная ситуация (Provider): Недостаточно памяти для завершения операции на TOP 1000 очень шустро отработала, а вот на полной таблице не взлетело
#24
by Lepochkin
Отчеты все летают. Данные просто нужны к концу рабочего дня и становится критичное время их закачки в 1ску.
#26
by Lepochkin
Хотя бы для того что бы в регистр сведений записать ссылку на номенклатуру, а не ее код, который мне отдает сторонняя база SQL. Плюс дублирующие записи отсечь.
#27
by Зеленый пень
Можно в SQL повесить триггеры, которые в отдельную таблицу будут добавлять измененные строки, и там всё что угодно можно замутить.
#28
by rsv
Так что с внешним источником ? Получив оный джойните с чем хотите и не надо никуда перезаливать. Джойнить получится токма в СКД.
#30
by rsv
в принципе они и были придуманы (источники) для этих целей - для соединения (объеденения ) в единой среде выполнения
#36
by neckto
На этапе получения данных отсекай уже обработанные, будешь вытаскивать небольшой объем изменений.
#37
by Lepochkin
Сравнения в цикле делаются медленные чем в запросе. А скулявая база не держит срез последний 1совский.
#38
by neckto
есть у тебя таблица №1: <ID> <Данные> Создай в SQL-ной базе таблицу №2: <ID>. Когда получаешь данные, получай из таблицы №1, за исключением данных в таблице №2. Когда в 1С обработаешь записи, пиши в таблицу №2 <ID>. <ID> - одно или комбинация полей.
#39
by Lepochkin
Со структурой в скульной базе можно конечно попробовать оптимизец навести. Но данных все равно много будет. Так что начальная задачка остается.
#42
by КонецЦикла
Соединение в запросе, а не сравнение в цикле Все там моментально будет если применить моск
#43
by Жан Пердежон
может есть возможность сразу готовые данные получать из SQL? либо часть данных из 1С помещать в ВТ SQL, а потом уже тянуть запросом результат?
#49
by Drac0
Да ,тогда особо не выиграешь. Тогда, ИМХО, делать запись в технический регистр прямым запросом ,а потом уже с ним работать через 1С.
#51
by Serginio1
Если табличка регистр сведений, то проще использовать Merge и напрямую писать в регистр сведений
#55
by МихаилМ
избавьтесь от RecordSet.Fields.Count-1 и будет еще быстрей если будете в getrows получать не все данные а порциями (например по 50000 записей ) будет еще быстрей.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- V7: быстрая загрузка данных из Excel
- 1cv8 SQL: Имя SQL сервера и имя SQL базы данных
- Долгая загрузка при "Загрузка структуры данных программы..."
- Загрузка структуры данных программы / загрузка прикладной системы
- Как из обычной базы сделать подчиненный узел распределенной базы?
- v7: 7.7 Автоматическая загрузка базы 1с dbf->sql
- Быстрая очистка независимого регистра сведений... почему-то совсем не быстрая :(
- Розница 2.2 быстрая замена прав по повороту ключа в программируемой клавиатуре.
В этой группе 1С
- 1с 8.2 Не найдена лицензия. Не обнаружен ключ защиты программы или полученная пр
- v7: Программа была завершена аварийно. Выполнить переиндексацию?
- ПланОбмена. Форма. Кнопки командной панели.
- Программное добавление реквизитов формы
- Зачем в УТ 10.3 регистр себестоимость продажи? Он дублирует партии или нет?
- СКД. Сортировка программно.
- Почему может не срабатывать точка останова? УТ11
- При переносе документов с помощью КД задваиваются контрагенты.
- Печать макета с шириной по странице
- Выгрузка номенклатуры из УТ 11.1 по группам в Frontol 4.6
- Бухгалтерия 3.0 Значения по умолчанию.
- Фиксация открытия внешних обработок в журнале
- Запрос с ПОДОБНО, поиск префикса в номере.
- Регистр сведений, может ли регистратор быть справочником?
- Не заполняется субконто Работники организации
- В PhotoShop пакетное изменение размеров изображений
- БСП, будь оно не ладно, на РИБ.
- Не пишет документ оприходования в регистр партий, УПП
- УСН 7.7 последний релиз
- Ошибка при загрузке базы из архива.dt