|
Ламерский вопрос по запросам.Почему заполнение ТЧ предпочтительней через запрос? | ☑ | ||
---|---|---|---|---|
0
Doomer
06.11.12
✎
14:08
|
Пытаюсь у себя в голове уложить.
Допустим есть документ ТЧ которого нужно выгрузить в ТЧ другого, причем часть реквизитов в приемнике называются по другому, а часть отсутствует в источнике. Для решения этой задачи используется запрос. ТЧ источника выгружается и обрабатывается запросом, а результат запроса загружается в ТЧ документа приемника. Считается что так быстрее. Попытался проверить на ТЧ в несколько сотен строк разница составила меньше 1 секунды причем в пользу обычного перебора. Пробовал на файловой базе и на обычной рабочей станции. В клиент серверном варианте скорее всего картина будет другая, но возможности проверить нет. Вопрос почему по умолчанию считается что работать через запрос быстрее? Это скорее не вопрос, а обсуждение. Хотелось бы все таки во внутренних механизмах разобраться. Кто как себе представляет процедуру создания документа и загрузки в него ТЗ из запроса в клиент-серверном варианте работы, на уровне взаимодействия платформы, СУБД и клиентов. |
|||
1
Defender aka LINN
06.11.12
✎
14:10
|
(0) А этот твой "перебор", он, надо полагать, не запросом а святым духом данные получает, да?
|
|||
2
ttk
06.11.12
✎
14:11
|
Правильный запрос, это 1 обращение к БД
А хз как написанный перебор, это хз сколько раз надо обращаться к БД |
|||
3
Doomer
06.11.12
✎
14:12
|
(1) Под перебором я понимаю цикл типа:
Для каждого СтрТЧ из Товары цикл .... КонецЦикл |
|||
4
Reset
06.11.12
✎
14:13
|
Срачетема инкаминг.
Вопрос слишком общий, но народ найдет, как кхм.. поспорить. |
|||
5
acsent
06.11.12
✎
14:13
|
Считается быстрее? нет. Красивее. да
|
|||
6
Serg_1960
06.11.12
✎
14:16
|
"Это скорее не вопрос, а обсуждение" - а "обсуждение" уже давно было :( и неоднократно :) И причины получения данных "через запрос" - не совсем те, что вы перечислили. Не только "быстродействие" - есть и другие более веские причины.
|
|||
7
Defender aka LINN
06.11.12
✎
14:17
|
(3) ИсчО раз: откуда, по-твоему, взялись данные в объекте?
|
|||
8
Doomer
06.11.12
✎
14:17
|
(6) Вот эти причины я и хочу найти и осмыслить.
|
|||
9
Doomer
06.11.12
✎
14:18
|
(7) Оттуда же откуда и с запросом. из БД.
|
|||
10
Defender aka LINN
06.11.12
✎
14:20
|
(9) И какие выводы мы делаем?
|
|||
11
Doomer
06.11.12
✎
14:21
|
(10) Что все одинаково.
|
|||
12
Feanorko
06.11.12
✎
14:26
|
(11) если у объекта 100500 ТЧ по миллиону строк?
|
|||
13
Defender aka LINN
06.11.12
✎
14:26
|
(11) Что вопрос по-дурацки поставлен. Без запроса не заполнишь все равно. Но это раз. А вот тебе два:
Вставляем это перед твоим заполнением
Думаем. |
|||
14
SUA
06.11.12
✎
14:27
|
(0)
создание и заполнение данных из источника - в общем случае, это - в общем случае - только серверный код: 1) чтение данных из источника (только на сервере, если на клиенте их еще нет... но тогда чтение уже прощло по факту, и не факт что на клиенте данные не устарели), в любом случае >=1 запрос к базе (не избежать) 2) загрузка в ТЧ того что вернул запрос (не избежать) 3) обработка данных тут сервер предприятия по простейшим действиям (математический/логический модуль) может быть быстрее скуль-сервера, или просто снизит нагрузку если нагрузка скуль-сервера в среднем по системе выше. Но обращение к реквизитам через точку - уже намного хуже (добавляются доп. запросы в цикле). 4) передача результата на клиента если нужно - тоже без вариантов |
|||
15
Serg_1960
06.11.12
✎
14:30
|
Не поленился, нашел нечто подобное - v8: v8: Почему в типовых делается запрос к документу из его же модуля
Воды много, но интересно почитать как колллективный разум до истины добирался :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |