|
Перенос выполнения запросов на сервер. Плюсы и минусы | ☑ | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
ИС-2
naïve
21.05.15
✎
13:21
|
Как повлияет (повышение скорости работы системы) выполнение запросов на сервере.
Т.е в серверном модуле пишем функцию Функция ВыполнитьЗапрос(ТекстЗапрос,ПараметрыЗапрос,МенеджерВременныхТаблиц = Неопределено) Экспорт Запрос = Новый Запрос; Запрос.Текст = ТекстЗапрос; Для Каждого КлЗн из ПараметрыЗапрос Цикл Запрос.УстановитьПараметр(КлЗн.Ключ,КлЗн.Значение); КонецЦикла; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Возврат Запрос.Выполнить(); КонецФункции Плюс - меньше нагрузка на терминал, минус - нагрузка на сервер + объем трафика. |
|||||||||||||
1
ДенисЧ
21.05.15
✎
13:24
|
А куда ты решил вернуть РезультатЗапроса? На тонкого клиента?
|
|||||||||||||
2
Fuas4
21.05.15
✎
13:24
|
(1) тут не УФ
|
|||||||||||||
3
ИС-2
naïve
21.05.15
✎
13:34
|
(1) на толстого
|
|||||||||||||
4
ДенисЧ
21.05.15
✎
13:46
|
(3) Тогда зачем? Запрос всё равно выполняется на сервере
|
|||||||||||||
5
ИС-2
naïve
21.05.15
✎
14:13
|
(4) не понял - как это на сервере. Будет на сервере лишь если используется директива &НаСервере или код в серверном модуле (как у меня). В остальных случаях все делается на клиенте
|
|||||||||||||
6
Mankubus
21.05.15
✎
14:28
|
(5) а к чему запрос обращается на клиенте? все данные же на сервере
|
|||||||||||||
7
Redkiy
21.05.15
✎
14:35
|
(0) ТС, ты о чем?
|
|||||||||||||
8
ViSo76
21.05.15
✎
14:41
|
Твой код топикастр выдаст ошибку, так как с сервера возвращать объект на клиента нельзя это раз, если бы и можно было то было бы медленнее.
PS: Автор явно путает сервер базы данных и сервер приложения. Медленее |
|||||||||||||
9
Зеленый пень
21.05.15
✎
14:50
|
(0) Это имеет смысл в одном случае - когда эта функция находится в привилегированном модуле, чтобы получить данные независимо от RLS.
(8) Результат запроса - прекрасно обменивается между клиентом и сервером. |
|||||||||||||
10
Ненавижу 1С
гуру
21.05.15
✎
14:50
|
запрос в любом случае выполняет СУБД, компонует его (ИТОГИ) сервер приложений, так что ничего не изменится
я сделал только ради привилигированного режима |
|||||||||||||
11
xaozai
21.05.15
✎
14:52
|
(0) Как запрос может выполняться на клиенте? o_0
хз |
|||||||||||||
12
ИС-2
naïve
21.05.15
✎
15:12
|
(8) с чего? Результат запроса не мутабельное значение
(11) во оно как михалыч. Интересно как что выполняется все время на сервере, а что на клиенте. Например, где делается код (точнее получаются значения реквизитов) Для Каждого СтрОснование из Основания.Товары Цикл Если СтрОснование.Номенклатура.Услуга Тогда Продолжить; КонецЕсли; ТекХарактерГруза = Строка(СтрОснование.Номенклатура.НоменклатурнаяГруппа); конеццикла а, то смотрю некоторые переборы работают быстрее запросов... |
|||||||||||||
13
ДенисЧ
21.05.15
✎
15:15
|
(12) А за такой код нужно руки отрывать
|
|||||||||||||
14
ИС-2
naïve
21.05.15
✎
15:36
|
(13) с чего? Это часть кода. Запросом работает дольше. Простой перебор отрабатывет достаточно быстро и нет излишнего получения данных. Первые строки отработал и прервать
|
|||||||||||||
15
ДенисЧ
21.05.15
✎
15:38
|
(14) ЗАпрос работает дольше только в файловой версии или в кривых руках.
|
|||||||||||||
16
ИС-2
naïve
21.05.15
✎
15:57
|
(15) Запрос не предназначен для обработки данных.
Делай я алгоритм запросом, то было бы несколько ВТ с выразить, выбор когда и группировками. Сможет ли SQL нормально оптимизировать такой запрос? Нет. Алгоритм для этого случая подходит лучше |
|||||||||||||
17
DS
21.05.15
✎
16:00
|
(16) Смешно читать. "Алгоритм подходит лучше запроса". А как этот "алгоритм" получает данные? Тем же запросом, загляни в технологический журнал. Вывод: запросы надо уметь писать.
|
|||||||||||||
18
Зеленый пень
21.05.15
✎
16:03
|
(12) Код не смертельный для базы, но - не образец.
Был опыт, когда некий документ весил под 100мб каждый, и при обращении через точку умирало всё надолго. |
|||||||||||||
19
Лефмихалыч
21.05.15
✎
16:05
|
(0) глупость от начала и до конца
|
|||||||||||||
20
Defender aka LINN
21.05.15
✎
16:05
|
(14) "Запросом работает дольше"
А месье в курсе, что "СтрОснование.Номенклатура.НоменклатурнаяГруппа" = "Выбрать * из Справочник.Номенклатура ГДЕ Ссылка = &Номенклатура"? |
|||||||||||||
21
ДенисЧ
21.05.15
✎
16:06
|
(16) @ Сможет ли SQL нормально оптимизировать такой запрос? Нет@
Если ты не можешь, это не значит, что в МС сидят люди дурней тебя |
|||||||||||||
22
Гёдза
21.05.15
✎
16:07
|
(0) Собственно сервер 1с это делает и так только неявно
|
|||||||||||||
23
Бубка Гоп
21.05.15
✎
16:09
|
Подождите, но ведь сегодня только четверг!
|
|||||||||||||
24
Defender aka LINN
21.05.15
✎
16:09
|
(16) "Запрос не предназначен для обработки данных" - а ты уже Oracle об этом предупредил? А то неловко будет, парни-то не в курсе.
|
|||||||||||||
25
ИС-2
naïve
21.05.15
✎
16:10
|
(20) и запрос в цикл в конце
(24) И кто использует оракл? |
|||||||||||||
26
МаксимМП23
21.05.15
✎
16:11
|
Весна заканчивается, а обострения продолжаются... необходимо сменить препараты.
|
|||||||||||||
27
Бубка Гоп
21.05.15
✎
16:12
|
и даже нет варианта КГ/АМ
|
|||||||||||||
28
Defender aka LINN
21.05.15
✎
16:15
|
(25) "и запрос в цикл в конце" - переводчик! В зале есть переводчик?!
"И кто использует оракл?" - да ларьки всякие мелкие, шелупонь, одним словом... |
|||||||||||||
29
DS
21.05.15
✎
16:18
|
(28) "и запрос в цикл в конце" - я так думаю, это самокритика (12), где по два запроса в цикле.
|
|||||||||||||
30
ssh2006
21.05.15
✎
16:19
|
(0) нет смысла,
только если без проверки прав в привелигированной серверной процедуре/модуле нужно выполнить |
|||||||||||||
31
Defender aka LINN
21.05.15
✎
16:20
|
(29) Второй раз из кэша будет получаться, но и 1 раза более чем достаточно :)
|
|||||||||||||
32
Бубка Гоп
21.05.15
✎
16:21
|
(30) а почему просто не заюзать УстановитьПривилегированныйРежим ?
|
|||||||||||||
33
DS
21.05.15
✎
16:24
|
(31) Да. И там, и там "номенклатура"...
|
|||||||||||||
34
ssh2006
21.05.15
✎
16:28
|
(32) > а почему просто не заюзать УстановитьПривилегированныйРежим ?
Или прив. модуль или УстановитьПривилегированныйРежим в серверной процедуре. Это и имел ввиду. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |