|
Скорость выполнения запроса | ☑ | ||
---|---|---|---|---|
0
geka-geka
29.03.12
✎
08:51
|
Почему на серверном варианте скорость выполнения запроса с предопределенного 10 счета в разы быстрее, чем с 20.03 созданного в режиме предприятия. При прочих равных. В файловом варианте скорость та же.
Функция ПолучитьКолОстатокПоСчету(Период, Субконто1 = Неопределено, Субконто2 = Неопределено) Запрос = Новый Запрос; Запрос.УстановитьПараметр("Период" , Период); Запрос.УстановитьПараметр("Счет1" , СчетСписания); Запрос.УстановитьПараметр("Организация" , Организация); Запрос.УстановитьПараметр("Субконто1" , Субконто1); Запрос.УстановитьПараметр("Субконто2" , Субконто2); ////////// разобраться c видами субконто ///////// Запрос.УстановитьПараметр("ВидыСубконто", ПланыСчетов.Хозрасчетный.Материалы.ВидыСубконто.ВыгрузитьКолонку("ВидСубконто")); Запрос.УстановитьПараметр("Ссылка" , БухСправка.Ссылка); Запрос.Текст = "ВЫБРАТЬ | Остатки.Счет, | Остатки.Субконто1, | Остатки.Субконто2, | СУММА(ЕСТЬNULL(Остатки.СуммаОстаток, 0)) КАК СуммаОстаток, | СУММА(ЕСТЬNULL(Остатки.КоличествоОстаток, 0)) КАК КоличествоОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &Период, | Счет В ИЕРАРХИИ (&Счет1), | &ВидыСубконто, | Организация = &Организация | И Субконто1 = &Субконто1 | И Субконто2 = &Субконто2) КАК Остатки | |СГРУППИРОВАТЬ ПО | Остатки.Счет, | Остатки.Субконто1, | Остатки.Субконто2"; Остатки = Запрос.Выполнить().Выгрузить(); Возврат Остатки; КонецФункции // ПолучитьОстатокПоСчету() |
|||
1
geka-geka
29.03.12
✎
09:04
|
есть мысли?
|
|||
2
ДенисЧ
29.03.12
✎
09:10
|
Берём скуль... Ловим им запрос... Смотрим в план... Думаем...
|
|||
3
geka-geka
29.03.12
✎
09:11
|
а на пальцах?
|
|||
4
el-gamberro
29.03.12
✎
09:12
|
(3) Приведи время выполнения первого и второго запроса желательно с точностью до микросекунд. тогда можно что-то оперделенное грить
|
|||
5
pessok
29.03.12
✎
09:15
|
фрагментация таблицы по двадцатке в скуле болье, чем по десятке
|
|||
6
geka-geka
29.03.12
✎
09:18
|
(5) то есть не зависит от того в конфигураторе создали счет или в предприятии?
|
|||
7
el-gamberro
29.03.12
✎
09:20
|
(6) почему бы тебе не сравнить между собой еще счета созданные в конф и в предприятии
|
|||
8
el-gamberro
29.03.12
✎
09:21
|
2 счета слишком маленкая выборка чтобы что-то грить. а вообще прав (2). без плана запроса нельзя точ но сказать почему такая скорость работы запроса
|
|||
9
pessok
29.03.12
✎
09:27
|
(6) вот от этого наверняка не зависит, но надо таки сделать как а (6) и в (2)
|
|||
10
geka-geka
29.03.12
✎
09:41
|
по поводу (4) время запроса с 20.03 - 0,628179; с 10 0,083379
|
|||
11
Maxus43
29.03.12
✎
09:47
|
ещё быстрей будет работать без В ИЕРАРХИИ, например все субсчета загнать в массив и в запросе В(&сЧЕТА)
|
|||
12
geka-geka
29.03.12
✎
10:02
|
проверил, не зависит от того где создан счет в конфигураторе или в предприятии.
|
|||
13
ДенисЧ
29.03.12
✎
10:03
|
(12) ну вот :-)
|
|||
14
geka-geka
29.03.12
✎
10:04
|
по поводу (2) нет ни знаний, ни возможности
|
|||
15
geka-geka
29.03.12
✎
10:17
|
как ни странно (11) помогло снизить скорость с 0,628 до 0,073. Спасибо Maxus43
|
|||
16
jsmith82
29.03.12
✎
10:19
|
(15) ну так в типовых не видел что-ли постоянно в массив суют
|
|||
17
ZanderZ
29.03.12
✎
10:19
|
(15) ничего странного если посмотреть план запроса
|
|||
18
geka-geka
29.03.12
✎
10:21
|
(16) видел, но не знал что это может повлиять
|
|||
19
jsmith82
29.03.12
✎
10:21
|
самое главное, чтобы по плану путина
|
|||
20
Maxus43
29.03.12
✎
10:22
|
(15) :) В ИЕРАРХИИ - ЗЛО
|
|||
21
jsmith82
29.03.12
✎
10:23
|
конечно, зло, потомков у родителя может быть тысяча, а в массиве элементов раз два и обсчёлся
|
|||
22
unregistered
29.03.12
✎
10:24
|
Как вариант:
Параметр ВидСубконто в запросе помимо отбора выполняет еще и функцию сортировки субконто на счете для получения данных. Таким образом, если на счете определены субконто Субконто1 - номенклатура Субконто2 - склады а мы передали в параметр массив, где первый элемент - Склады, а второй - Номенклатура (порядок не такой как на самом счете), то система затратит еще кучу времени на то, чтобы получить таблицу с указанным нами порядком следования субконто. |
|||
23
geka-geka
29.03.12
✎
10:26
|
Еще странно, что в файловом варианте работает одинаково быстро
|
|||
24
Maxus43
29.03.12
✎
10:27
|
(23) СУБД 1с оптимизирована под В ИЕРАРХИИ значит, а тут СКУЛЬ, у него своё мнение о планах запроса и их оптимизации
|
|||
25
unregistered
29.03.12
✎
10:27
|
Еще вариант:
Физические таблицы итогов для счетов с разным количеством субконто разные. Если у нас один счет имеет два субконто, а другой счет - три субконто, то данные для виртуальных таблиц будут браться из разных физических таблиц. А эти физические таблицы могут заметно различаться по своим размерам. Соответственно и скорость выполнения запроса будет разной. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |