|
xBase никуда не спишит. | ☑ | ||
---|---|---|---|---|
0
greenif
19.10.12
✎
14:46
|
xBase v7.7 vs xBase 8.2
Портировал обработку выгрузки номенклатуры с самописной конфы v7.7 На аналогичную самописную конфу v 8.2 Данные в справочниках одни и теже, импортированы в 8.2 с 7.7 Структура справочников отличается не существенно. На 7.7 обработка проходит за 17 секунд. На 8.2 после длительных оптимизаций удалось добиться 2 минуты 9 секунд. Анализ производительности показал, что 79% времени уходит на присвоения первого поля записи DBF dbf.Kod = Номенклатура.Код; причем не важно какое поле ставить первым: Код, Наименование или артикул. Игры с свойством dbf.АвтоСохранение результата не принесли. Подскажите есть ли вариант оптимизации. Вариант использовать что-то кроме DBF не подходит из-за ограничений софта с другой стороны. Спасибо. |
|||
1
Лефмихалыч
19.10.12
✎
14:48
|
(0) выбери данные запросом. Обращение к реквизитам ссылки через точку - это запрос. В итоге у тебя запросы в цикле происходят
|
|||
2
Reset
19.10.12
✎
14:53
|
+1
"причем не важно какое поле ставить" - подтверждение тому |
|||
3
orefkov
19.10.12
✎
14:59
|
(0) Время уходит не на присвоение поля, а на чтение реквизитов элемента справочника. Выбирай все нужное запросом.
|
|||
4
greenif
19.10.12
✎
15:10
|
Ну вроде так и делаю:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка, | Номенклатура.Штрихкоды.( | Штрихкод | ) |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ПометкаУдаления = ЛОЖЬ | И Номенклатура.ЭтоГруппа = ЛОЖЬ | И Номенклатура.НеВыгружать = ЛОЖЬ"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Номенклатура = Выборка.Ссылка; ВыборкаШК = Выборка.Штрихкоды.Выбрать(); Пока ВыборкаШК.Следующий() Цикл Попытка dbf.Добавить(); Исключение Возврат Ложь; КонецПопытки; dbf.Kod = Номенклатура.Код; dbf.Artikul = Номенклатура.Артикул; dbf.Name = Номенклатура.Наименование; dbf.BarCode = ВыборкаШК.Штрихкод; КонецЦикла; |
|||
5
ttk
19.10.12
✎
15:15
|
ВЫБРАТЬ
| Номенклатура.Ссылка, | Номенклатура.Код, и т.д. |
|||
6
greenif
19.10.12
✎
15:18
|
Понял, спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |