|
Ускорить синхронизацию справочника 7 -> 8 | ☑ | ||
---|---|---|---|---|
0
extrim-style
17.05.12
✎
15:12
|
Сделал синхронизацию семёрошного справочника на 30000 элементов с 8-кой прямыми запросами к SQL. Синхронизация стартует ПриНачалеРаботыСистемы. Прямыми запросами - 15 сек, через СОМ - 40 сек. Нужно < 5 сек. Какие есть варианты ускорить синхронизацию?
По коду: получаю RS (ADODB.Recordset), обхожу его циклом и сравниваю элементы (в реквизит 8-ки добавлен реквизит Код1С7). Основная нагрузка при поиске: ТекЭл = Спр.НайтиПоРеквизиту("Код1С7", КодЭлемента); - 10 секунд Если ТекЭл.Пустая() Тогда... Пробовал не искать элементы, а выгрузить коды в ТЗ и сравнивать. В результате по ТЗ ищет еще дольше. Какие тут могут быть варианты? Кроме как добавить реквизит ПризнакСинхронизации в 7-ку и потом отбирать в SQL по этому признаку чёта ничего не придумывается. Справочник 8-ки это справочник 7-ки полностью + свои элементы. |
|||
1
acsent
17.05.12
✎
15:15
|
какая процедура занимает больше всего времени?
|
|||
2
acsent
17.05.12
✎
15:16
|
делай запрос напрямую к двум базам
|
|||
3
kosts
17.05.12
✎
15:17
|
Делай синхронизацию в фоновом режиме
|
|||
4
Vladal
17.05.12
✎
15:21
|
Прилепи план обмена. Система будет помечать измененные в 8-ке элементы, потом их списком загонишь в 7-ку.
Аналогично в 7.7 - реквизит-семафор и при загрузке его обнулять |
|||
5
Жан Пердежон
17.05.12
✎
15:22
|
(4) тут в обратную сторону синхронизация
|
|||
6
Buster007
17.05.12
✎
15:26
|
"Пробовал не искать элементы, а выгрузить коды в ТЗ и сравнивать. В результате по ТЗ ищет еще дольше. " каким образом ты это делал?
|
|||
7
extrim-style
17.05.12
✎
15:34
|
(2) Забыл написать - 8-ка файловая! Причем 8.1
(3) через регламентные задания? (4) не понял. мне нужно из 7ки в 8ку. реквизит-семафор не хотелось бы, в принципе тоже самое, что и в (0), только с планами обмена еще нужно заморачиваться. |
|||
8
DrShad
17.05.12
✎
15:37
|
(0) а если использовать РС СоответствиеОбъектовДляОбмена?
|
|||
9
DrShad
17.05.12
✎
15:40
|
+(8) при этом никакой синхронизации при начале работы системы не нужно
|
|||
10
extrim-style
17.05.12
✎
16:21
|
(8) не понял каким образом использовать? обмен настроить?
|
|||
11
extrim-style
17.05.12
✎
16:25
|
(6) Ну при обходе RS в цикле не делал поиск элемента по реквизиту (с записью его в ТекЭл), а перед циклом выбрал запросом из справочника 8-ки реквизит Код1С7 и по нему делал сравнение. И когда элемент не найден, тогда только остальные операции.
|
|||
12
Жан Пердежон
17.05.12
✎
18:33
|
допили регистрацию изменений в 7,
триггер поставь например |
|||
13
acsent
17.05.12
✎
18:34
|
(7) что за прямые запросы из 7 в 8 тогда?
|
|||
14
DrShad
17.05.12
✎
18:35
|
(10) я разве писал чтоб настроить обмен? хранить в нем соответствия
|
|||
15
acsent
17.05.12
✎
18:35
|
ну а так единственнный вариант ты уже сам предложил
|
|||
16
acsent
17.05.12
✎
18:35
|
(14) думаешь по регистру быстрее поиск?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |