#0
by Slaventiya
Подскажите в чем беда, файл - 630 Мб, строк 7 430 000, наблюдается просто ОЧ. СИЛЬНОЕ падение скорости загрузки где то после 40 000 обработанных строк, в файле инфа из внешней системы НЕ 1С. При загрузке создаются сведения и их значения, все это соответственно привязывается к НаборамДополнительныхРеквизитовИСведений, далее привязывается к конкретной номенклатуре.
#7
by Slaventiya
Читаю построчно, иначе по любому нехватка ОЗУ, Строку в массив подстрок (Все данные массива строкимассив на сервер
#9
by Господин ПЖ
погляди счетличи в винде, не распухает ли клиент по памяти... завернуть все в транзакцию по 1000 позиций
#11
by bolobol
Читаешь "по строчно" - это как? ПолучитьСтроку(й) или ПолучитьСледующуюСтроку ? - разница ОГРОМНА!
#18
by bolobol
Вангую - на чтении. Т.к. это предполагается и без открытия третьего глаза. Опровержения пока не видим...
#21
by Torquader
А что его побайтно читать ? 630 мегабайт - это немалый файл, но построчно может читаться на ура. А вот если данные каждой строки или их часть потом куда-то в память складываются, то память всё равно кончится. Нужно не только читать построчно, но и обрабатывать также, чтобы после обработки блока память освобождалась.
#22
by Господин ПЖ
отладчик с замером производительности ничего не говорит? например выполняется строка N раз, хотя она должна отрабатывать 1 раз - запихнута в цикл по невнимательности
#24
by МихаилМ
разбейте задачу на подзадачи если хотите управлять производительностью абстрагируйтесь от источников данных. разделите методы чтения, обработки, вывода при профилеровке сразу станут понятны медленно работающие методы программы. будет возможность изменить метод доступа и источник данных ((oledb,odbc)*(ado,ado+GameWithFire), тескт, ado.stream,FSO,+ разбиение ра части + конвертация в промежуточный формат ) - те для csv вариантов 20 чтения будет возможность распараллеливания по фоновым заданиям в РС можно писать порциями в транзакции, адаптивно подбирая количество записей в транзакции.
#26
by bolobol
Похоже, в 18:00 у ТС закончился рабочий день... Завтра перечитает и развангует гадания на кофейной гуще.
#29
by Slaventiya
Не густо.. С транзакциями пробовал, не помогает, ед что помогает считывать по 25000 позиций, заново открывать файл, и с позиции на которой закончил, но это уже ручки, пока на этом стал. Память и загрухзка сервера приблизительно в одном состоянии так и читаю...
#31
by H A D G E H O G s
Для набора записей ставь ОбменДанными.Загрузка=Истина, это заставит сервер 1С не слать к ms sql запрос о наличии данных.
#34
by Рэйв
У файла же фиксированная структура. Напиши короткую обработку делящую файл на более мелкие части. Пусть их будет много но при закрытии они будут очищать память и читаться должны быстро
#38
by Нуф-Нуф Второй
Юзай чтение текста ЧтениеТекста (TextReader) ЧтениеТекста (TextReader) Методы: Конструкторы: По имени файла Формирование неинициализированного объекта Описание: Предназначен для последовательного чтения текстовых файлов (большой длины). Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение. Пример: См. также: ЗаписьТекста ЧтениеТекста, конструктор По имени файла
#39
by Slaventiya
А что вы думаете о рекурсивном вызове? Метод обращения к теккту тот же, через Текстовый документ по причине того что я могу начать читать текст с нужной мне позиции а по достижению опред. значения, скажем 10К обработанных записей помещать номер новой строки в реквизит формы обработки и уничтожению объекта текст, а цикл всегда стартует с позиции указанной в реквивите формы ?
#41
by Slaventiya
Почему ? На данный момент не наблюдается падения производительности, а не нравится тем что я не могу начать чтение с той позиции на которой произошло падения (Если таковое случится, например нет электричества, причем у нас это скорее норма), а загрузка без перерыва по прибл. подсчетам займет до 3.5 суток
#42
by H A D G E H O G s
"а загрузка без перерыва по прибл. подсчетам займет до 3.5 суток" У вас что то явно не то
#43
by Kamas
если все данные уникальны нет пересекающихся то советую разбить файл на несколько и грузить его многопоточно
#44
by МихаилМ
630 мег / 3,5 суток ~ 2,1 килобайт в секунду раз в 1000 ускорить можно . те минут за 5-6 загрузиться должно.
#45
by Slaventiya
Ок, файл содержит Ид - ВидаНоменлатуры, Ид - Номенклатуры, Ид - Свойтсва, Ид - ЗначенияСвойства (Если не примитивный тип данных), ЗначениеСвойства, ТипСвойства, НаименованиеСвойства: Виды загружены - но Виды выгруженны из внешней системы не 1С и загруженыв через РС Синхронизация: Измрения: ВнешнийИд - Строка Использую для поиска вида. С номенклатурой проще, Артикул и есть Ид Номенклатуры, по нему происходит поиск номенклатуры.... ( Поиск также используется по Номенклатура ЗначенияСвойствОбектов ПВХ.ДополнительныеРеквизитыИСведения ) все по регистрам сведений синхронизации расскидано, кроме номенклатуры Сопоставляю ТипСвойства с ПВХ для создания, типа MultiPle, Select, Number - это оказывается строка, Bit - это Булево, Date - Дата, У некотjрых есть Ил, у некоторых нет, у тех что нет это не ЗначенияСвойствОбъектов и т.д. Все это создается, связывается и записывается в регистры синхронизации Как то так....
#47
by H A D G E H O G s
Кэширование тебе поможет. Даже без запихивания всех ID номенклатур в запрос и пакетного получения ссылок.
#48
by Slaventiya
В базе ничего кроме номенкалтуры и видов нет, а собственник именно захотел, хотя его убеждали в том что это не совсем целесообразно, стоит связываться только с тем что есть в наличии или были движения за последние полгода
#49
by Slaventiya
У меня в данной области явный пробел, нельзя ли подробнее или ссылки на методики ?
#54
by Господин ПЖ
ну ладно в 7.7 были проблемы - текст глотался весь сразу, начинались пляски с fso/ado а в 8.2 чему тормозить?
#56
by Господин ПЖ
в скуль 2000 через dts подобный объем запихивается в плоскую таблицу за несколько минут максимум...
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Обход журнала документов с включенным отбором по ВидДокумента
- v7: ЗиК. Индексировать ВидРасчета.ПремияПоИтогамГодаСуммой при расчете отпускных
- 8.3 Переменная не определена (СпособВыбораСертификатаWindows)
- Загрузки запроса в массив, таблицу значений, список значений
- УТ 10.3 очень долгое проведение документа.
- Отсортировать номенклатуру по номенклатурным группам
- Розница 2.1 Количество транзакций
- СКД: пользователь не видит поля
- Конфигурация "Сборщик мобильных приложений"
- При переходе нетиповой БП с 2.0 на 3.0 пропали значения добавленных реквизитов
- 8.3 плавающая ошибка в управляемой форме
- Белый IP через VPN
- Frontol vs 1C Розница.
- БП 3.0 (БСО) Переход с УСНО на ОСНО.
- БП 3.0 + планирование
- ТСД Opticon Smart и 1С
- Печать только проведенных документов
- Сеанс отсутствует или удален
- Как открыть форму модально?
- Фоновое задание и транзакция