|
Оптимизация получения GUID по COM-соединению | ☑ | ||
---|---|---|---|---|
0
fjay69
05.10.17
✎
09:46
|
Доброго дня!
Есть обработка, которая сверяет данные между двумя базами. Обработка запускается на Базе 1 (Б1), подключается к Базе 2 (Б2) по COM-соединению. Поставлена задача ускорить выполнение сверки. Замер времени показывает, что дольше всех выполняются операции подобного рода: ГУИД = COMПодключение.XMLСтрока(COMОбъект.УникальныйИдентификатор()); Суть в том, что в Б2 запускается запрос (COMПодключение.NewObject("Запрос")), затем объекты Б2 нужно сопоставить с объектами Б1 по GUID. Есть ли способ выполнить это быстрее? |
|||
1
RomaH
naïve
05.10.17
✎
09:48
|
ГУИД = COMПодключение.XMLСтрока(COMОбъект.УникальныйИдентификатор());
тут две операции - которая из них дольше? |
|||
2
mehfk
05.10.17
✎
09:50
|
Вместо того, чтобы каждый раз получать гуид объекта в той базе, сохраняй в регистр сведений в той базе соответствующие гуиды объектов этой базы.
|
|||
3
DrShad
05.10.17
✎
09:51
|
(2) +1
|
|||
4
fjay69
05.10.17
✎
09:54
|
Эта:
COMОбъект.УникальныйИдентификатор() |
|||
5
d4rkmesa
05.10.17
✎
14:14
|
(0) COMПодключение.XMLСтрока(COMОбъект) - если объект ссылочного типа.
|
|||
6
Ненавижу 1С
гуру
05.10.17
✎
14:31
|
(0) мне кажется больше всего времени ест запрос, а не эта фигня
|
|||
7
Ненавижу 1С
гуру
05.10.17
✎
14:33
|
(0) а почему:
ГУИД = COMПодключение.XMLСтрока(COMОбъект.УникальныйИдентификатор()); а не: ГУИД = COMПодключение.String(COMОбъект.УникальныйИдентификатор()); |
|||
8
RomaH
naïve
05.10.17
✎
14:39
|
(7) а почему не
ГУИД = "" + COMОбъект.УникальныйИдентификатор(); |
|||
9
ProxyInspector
05.10.17
✎
14:40
|
(7) COMПодключение.String(COMОбъект.УникальныйИдентификатор()) это самый быстрый способ. По моему опыту.
|
|||
10
Ненавижу 1С
гуру
05.10.17
✎
14:42
|
(8) потому что не взлетит, будет ГУИД = "COMObject"
|
|||
11
fjay69
05.10.17
✎
15:15
|
Как мне подсказал коллега, такой способ работает быстрее:
ГУИД = COMПодключение.XMLСтрока(COMОбъект);
То есть я могу получить ГУИД не вызывая функцию УникальныйИдентификатор(). И это реально быстро! |
|||
12
fjay69
05.10.17
✎
15:23
|
(7) Пробовал. Разницы скорости не заметил.
|
|||
13
4St
05.10.17
✎
15:24
|
(11) Еще можно закинуть COM объекты в Массив, сериализовать его, а из него уже надергать гуиды.
|
|||
14
pavig
05.10.17
✎
15:31
|
(0) Подготавливай весь набор на стороне СОМ, забирай оттуда в сериализованном виде, обрабатывай "внутри" своей базы. Делов-то)
|
|||
15
Фортовый
05.10.17
✎
15:34
|
читал подобное в мануале ускорения обмена .там чел писал .что выгружал соответсвие в регистр сведений .как то через кеш делал в нем . погугли найдешь статью
|
|||
16
Mikhail Volkov
05.10.17
✎
18:51
|
(2) ГУИДы той и этой базы одни и те же!?
(0) Много передавать? Дольше всех устанавливается СОМ-соединение... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |