Повышение быстродействия при загрузке номенклатуры
Добрый день!
В ходе разработки, столкнулись со следующей проблемой:
При загрузке номенклатуры на север ТСД, сам процесс загрузки идет очень долго(скорей всего из-за количества самой номенклатуры( более 300 тыс. позиций).
При том, торможение происходит в 2 этапа: 1 - сначала 1С отдает долго данные компоненте, а потом уже сам сервер(скорей всего стоит индексы), минут 20-30 тоже находится в подвешенном состоянии...
Сам обмен именно номенклатурой в дальнейшем будет работать в режиме очереди( т.е. 1 раз сделали большую выгрузку и дальше ходят только измененные), но цены (а это планируется отдельная серверная таблица), должны будут обновляться 2 раза в день и нужно максимально быстро это делать. Сложности прибавляет то , что количество позиций цен будет в несколько раз больше , чем самой номенклатуры(на каждый магазин своя цена).
Вопрос заключается в том: нет ли каких-нибудь уже известных и общепринятых методов работы в таких условиях? Т.е. самое важное - это обеспечить максимально быстрое обновление таблицы цен? По возможности - обмен номенклатурой тоже желательно максимально ускорить.
Спасибо.
Сервис поддержки клиентов работает на платформе UserEcho
Добрый день!
Обработку выгрузки свою используете самописную или типовую?
В типовой используются асинхронные выгрузки построчные, оно побыстрее работает, хотя понятно - 300 тыс. много и мгновенно не выгрузится.
По ценам - таблица это правильно. Просто выгружайте не всю таблицу, а только изменения.
Еще советую Вам перейти на новую версию платформы: там таблицы могут быть на базе sql, плюс как раз частичные выгрузки возможны если колонку с уникальным ключом завести.
Скачать новую платформу можно тут: http://cleverence.ru/downloads/MobileSMARTS.msi
Если соберетесь перейти, то сконвертировать конфигурацию мы Вам поможем: напишите письмо на суппорт.
Выгрузка используется своя( задержка на момент выгрузки из 1С некритична, и может лечь в регл. задание в будущем).
"По ценам - таблица это правильно. Просто выгружайте не всю таблицу, а только изменения." - если честно, не нашел чего-то похожего на UPDATE для таблиц... только удаление и создание новой строки(думается, что это все же медленней апдейта).
"Еще советую Вам перейти на новую версию платформы: там таблицы могут быть на базе sql, плюс как раз частичные выгрузки возможны если колонку с уникальным ключом завести."
(вот и ответ про мой UPDATE, наверное) - тогда есть вопрос про эти таблицы: они , получается, могут лечь на какой-то SQL сервер? и ТСД-сервером браться? т.е. я смогут эту таблицу обновлять сразу на SQL?
или это какой-то все же внутренний механизм будет? возможно, где-то есть какой-то мануал, и можно изучить, чтобы не задавить лишних вопросов?)
Спасибо!
Для этих наших sql таблиц используется Sqlite, т.е. вы править конечно можете, но возможны блокировки файла так что лучше и правильнее через сервер.
По документациям и новому апи к ним, к сожалению пока нет, собственно поэтому и платформа эта явно на сайте не лежит, а используется нами в новых продуктах. Так что тут мы Вам поможем.
В старой платформе (да и в новой тоже), кстати, есть коннектор к MS Sql серверу. На сайте примера я к сожалению не нашел, но если напишете на support думаю смогут пример найти использования.
Тогда можно будет поднять SQL сервер, даже бесплатный Express, и таскать цены из его таблички.
Также если получение цен будет всегда происходить через сервер, можно не выгружать цены куда-либо, а получать он-лайн прямо из 1С. Для этого нужно использовать коннектор к 1С (см. http://www.cleverence.ru/support/category:%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B5%20%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D1%8B/). В случае серверной базы 1С, думаю, по быстродействию это будет сопоставимо с получением из SQL-таблицы. Номенклатуру тоже можно получать он-лайн прямо из базы 1С (если нет необходимости, чтобы на терминале можно было работать без связи с сервером). Все это реализовано в нашем продукте Драйвер 1C Wi-Fi ПРОФ (http://www.cleverence.ru/software/mobile-smarts/MS-1C-WIFI-DRIVER-PRO/), в самой платформе mobile smarts 2008 также есть коннекторы к 1С, т.е. там тоже это все можно сделать.
Коннектор уже обдумывался...но проблема в том, что ТСД сам будет использоваться в оффлайновом режиме(т.е. без постоянной связи с сервером ТСД/сервером 1С).
При обмене с ТСД, ведь вся таблица цен будет на него выгружаться полностью заново? Тут задержку , получается, убрать точно никак не удастся ?
По новой платформе - я попробую скачать, и посмотреть, возможно появятся вопросы, и тогда спрошу, спасибо за информацию.
Ну если в оффлайн режиме, то собственно только sqlite таблицы наши из новой платформы, никаких вариантов других у Вас нет.
Собственно предложения про коннектор и MS Sql написали, так как у Вас было написано, что для цен планируется серверная таблица.