Ошибка при загрузке прайс-листов поставщиков
Читают тему
Вход в личный кабинет
Для получения доступа к форуму необходимо
авторизоваться
или
зарегистрироваться
на сайте.
{{ formTitle ? formTitle : 'Заказ обратного звонка' }}
{{ formDescription }}
Сообщить об ошибке
При загрузке прайс-листов поставщиков столкнулись со следующей проблемой: бывает такое, что в одном прайс-листе есть одинаковые позиции с одинаковыми каталожными номерами. Естественно, сейчас обработка падает с ошибкой о дублирующихся записях РС. Подскажите, как решить проблему.
Если рарусу интересно....
Менял несколько процедур. Все мои изменения подписаны ремарками, т.е. видно как было и как стало.
Релиз Альфа-Авто: Автосалон+Автосервис+Автозапчасти. Редакция 4.1 (4.1.01.06)
В прикрепленных файлов тексты модулей
Основная идея изменений в следующим.
Рарус написал так:
1. Читается запись из файла и если нет такой записи в большой таблицы то создается запись в большой таблицы
2. Запись большой таблицы в один проход
В первом пункте проблема в том что после 500 000 записей поиск по этой таблице занимает несколько десятков секунд, а сам прайс у меня был примерно 1 500 000 почти уникальных артикулов
Во втором пункте проблема в том что за один проход даже в регистр сведений затолкать такую таблицу и записать это все достаточно большая проблема даже для мощного сервака на SQL.
у меня идея такая:
1. Читаем все записи и запихиваем без всяких проверок в большую таблицу
2. Сортируем таблицу по артикулу
3. Дробим таблицу на кучу маленьких таблиц и записываем каждую таблицу отдельно. Как ни странно но 10 таблиц по 1 000 запишутся быстрее чем одна на 10 000. При дроблении при обходе большой таблицы сразу и проверяем на уникальность артикулов благо после сортировки это сделать достаточно просто.
Все это писал до появление временных таблиц в запросе. Сейчас бы реализовал через временную таблицу в запросе и в итоге запись уже готовый таблицы из запроса. Но механизм уже отлажен и не хочется трогать то что работает.
По времени получил примерно следующее. До изменений загрузку прайса ставили на ночь и сутра смотрели либо на загруженный прайс либо на ошибку о нехватки памяти. Это примерно часов 12. После изменений загрузка стала происходить днем за минут 40 - час. При этом все остальные пользователи могли спокойно работать.
Прикрепленные файлы
Оказывается, не у одних нас такая проблема, внесу как пожелание к будующим релизам - учесть ситуацию, когда каталожные номера в прайс-листе поставщика повторяются.
Оказывается, не у одних нас такая проблема, внесу как пожелание к будующим релизам - учесть ситуацию, когда каталожные номера в прайс-листе поставщика повторяются.
Стандартно эта ситуация и так учтена, только не очень оптимальна.
Не очень понял. Может разъясните, как, используя типовую обработку загрузки прайс-листов поставщиков, загрузить прайс-лист с повторяющимися позициями?
Не очень понял. Может разъясните, как, используя типовую обработку загрузки прайс-листов поставщиков, загрузить прайс-лист с повторяющимися позициями?