|
Тормоза при создании штрих-кодов | ☑ | ||
---|---|---|---|---|
0
oreshka7387
27.08.13
✎
11:05
|
УТ 10.3. База файловая, доступ по сети. После перехода на 8.2 конвертацией появились дикие тормоза при создании штрих-кодов. Для сравнения, на компьютере, где лежит база (назовем его сервер), один штрих-код создается 9-11 секунд, по сети доходит до минуты на каждый штрих-код.
Номенклатурный перечень большой, каждый день создается по 20-30 новых позиций. Первый раз сталкиваюсь с тормозами после конвертации. Подскажите, как облегчить работу? Возврат на 8.1 не предлагать. Заранее спасибо |
|||
1
Allexe
27.08.13
✎
11:09
|
(0) Посмотреть в отладчике замером производительности?
|
|||
2
oreshka7387
27.08.13
✎
11:14
|
Уже смотрела. Долгое выполнение почему-то в общем модуле РаботаСТорговым оборудованием на функции
Функция СформироватьШтрихКод(Знач ПрефиксШтучногоТовара = Неопределено, Знач ПрефиксВнутреннегоШтрихкода = Неопределено) Экспорт Если ПрефиксШтучногоТовара = Неопределено Тогда ПрефиксШтучногоТовара = СокрЛП(Константы.ПрефиксШтучногоТовара.Получить()); КонецЕсли; Если ПрефиксВнутреннегоШтрихкода = Неопределено Тогда ПрефиксВнутреннегоШтрихкода = Константы.ПрефиксВнутреннегоШтрихкода.Получить(); КонецЕсли; ПрефиксШтучногоТовара = ?(ПустаяСтрока(ПрефиксШтучногоТовара), "0", ПрефиксШтучногоТовара); ПрефиксВнутреннегоШтрихкода = Формат(ПрефиксВнутреннегоШтрихкода, "ЧЦ=2; ЧН=; ЧВН="); Запрос = Новый Запрос(" |ВЫБРАТЬ | МАКСИМУМ(ПОДСТРОКА(РегШтрихКоды.Штрихкод, 5, 8)) КАК Код |ИЗ | РегистрСведений.ШтрихКоды КАК РегШтрихКоды |ГДЕ | РегШтрихКоды.ТипШтрихкода = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ТипыШтрихкодов.EAN13) | И РегШтрихКоды.Штрихкод ПОДОБНО ""2" + ПрефиксШтучногоТовара + ПрефиксВнутреннегоШтрихкода + "_________"" |"); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); ТекКод = ?(Выборка.Код = NULL, 1, Мин(ОбщегоНазначения.ПривестиСтрокуКЧислу(Выборка.Код) + 1, 99999999)); Штрихкод = "2" + ПрефиксШтучногоТовара + ПрефиксВнутреннегоШтрихкода + Формат(ТекКод, "ЧЦ=8; ЧВН=; ЧГ="); Штрихкод = Штрихкод + КонтрольныйСимволEAN(ШтрихКод, 13); Возврат Штрихкод; КонецФункции // СформироватьШтрихКод() |
|||
3
oreshka7387
27.08.13
✎
11:14
|
(2) блин, как спойлер сделать?
|
|||
4
Fragster
модератор
27.08.13
✎
11:21
|
|ВЫБРАТЬ
| ПОДСТРОКА(МАКСИМУМ(РегШтрихКоды.Штрихкод), 5, 8) КАК Код |ИЗ | РегистрСведений.ШтрихКоды КАК РегШтрихКоды |ГДЕ | РегШтрихКоды.ТипШтрихкода = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ТипыШтрихкодов.EAN13) | И РегШтрихКоды.Штрихкод ПОДОБНО ""2" + ПрефиксШтучногоТовара + ПрефиксВнутреннегоШтрихкода + "_________"" | |
|||
5
Fragster
модератор
27.08.13
✎
11:23
|
РегШтрихКоды.Штрихкод ПОДОБНО ""2" + ПрефиксШтучногоТовара + ПрефиксВнутреннегоШтрихкода + "%""
|
|||
6
Михаил Козлов
27.08.13
✎
11:24
|
Может быть тормоз при поиске максимума в РС ШтрихКоды.
Делад так: завел РС (условно счетчтки), куда писал 1 строку с текущим максимум кода в РС ШтрихКоды. |
|||
7
oreshka7387
27.08.13
✎
11:26
|
(6) хм... вариант, в принципе, тогда вопрос по производительности - почему на 8.1 тормозов не было? может быть, это риторический вопрос, но ответ знать хочется, чтоб не наступить на те же грабли в будущем
|
|||
8
Галахад
гуру
27.08.13
✎
11:27
|
Может базу пожать надо? ТиИ?
|
|||
9
oreshka7387
27.08.13
✎
11:28
|
(4) (5) попробую, спасибо! хотя не совсем поняла, в чем суть в от здесь: ПрефиксВнутреннегоШтрихкода + "%""
пойду за справкой по запросам |
|||
10
Fragster
модератор
27.08.13
✎
11:28
|
(9) не будет проверки на длину строки
|
|||
11
Fragster
модератор
27.08.13
✎
11:29
|
(10)+ она же и так известна для EAN13
|
|||
12
oreshka7387
27.08.13
✎
11:29
|
(8) тии делаю раз в месяц
|
|||
13
oreshka7387
27.08.13
✎
11:29
|
(10) а! спасибо!
|
|||
14
oreshka7387
27.08.13
✎
11:50
|
время выполнения с 55 секунд сократилось до 26. уже лучше, но действительно подумываю о том, чтобы где-то хранить максимальное значение шк
|
|||
15
H A D G E H O G s
27.08.13
✎
11:52
|
26 секунд.
жесть, как она есть... |
|||
16
Fragster
модератор
27.08.13
✎
12:31
|
(14) это и (4) тоже?
|
|||
17
oreshka7387
27.08.13
✎
12:35
|
(16) ага!
Решила сделать так: в запросе подстроку не получать, а только максимум. А уже потом обработать результат и получить эти самые 8 знаков. Может, и по-детски, зато на каждый шк уходит 0,88 сек |
|||
18
Fragster
модератор
27.08.13
✎
14:20
|
т.е. просто добавление ПОДСТРОКА(МАКСИМУМ(РегШтрихКоды.Штрихкод), 5, 8) КАК Код увеличивает в 25 раз время запроса?
|
|||
19
oreshka7387
27.08.13
✎
16:39
|
(18) как ни странно, но да! если доступ по сети и клиентская машина похожа на калькулятор
|
|||
20
Fragster
модератор
27.08.13
✎
16:44
|
(19) обращаю внимание на то, что подстрока снаружи максимума.
ВЫБРАТЬ ПОДСТРОКА(Вложенный.Код, 5, 8) КАК Код ИЗ (Выбрать Максимум(РегШтрихКоды.Штрихкод) из ...) как Вложенный тоже долго работает? А такой вариант: Выбрать Первые 1 ПОДСТРОКА(РегШтрихКоды.Штрихкод, 5, 8) КАК Код Из ... Где ... Упорядочить по РегШтрихКоды.Штрихкод Убыв ? |
|||
21
Vitamax3
27.08.13
✎
16:54
|
А зачем? Она же сделала вроде так.
|ВЫБРАТЬ | МАКСИМУМ(РегШтрихКоды.Штрихкод) КАК Код |ИЗ | РегистрСведений.ШтрихКоды КАК РегШтрихКоды |ГДЕ И дальше Сред(Выборка.Код,5,8) |
|||
22
Fragster
модератор
27.08.13
✎
17:02
|
(21) я не понимаю почему тормозит
|
|||
23
oreshka7387
29.08.13
✎
11:14
|
(21) да, именно так!
(22) тоже не понимаю :( |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |