|
Быстродействие запроса к остаткам - баг или фича? | ☑ | ||
---|---|---|---|---|
0
Sasha_1CK
30.12.14
✎
05:33
|
Собственно сабж
был запрос вида ВЫБРАТЬ | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1 КАК Контрагент, | ХозрасчетныйОстатки.Субконто2 КАК Договор, | ХозрасчетныйОстатки.Субконто3 КАК ДокументРасчетов, | ХозрасчетныйОстатки.СуммаОстатокДт КАК СуммаДолг |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &Дата, | Счет =&Счет ) КАК ХозрасчетныйОстатки |ГДЕ | ((ХозрасчетныйОстатки.Субконто1 = &Контрагент) Работал, работал - и тут в один прекрасный день начал тормозить не по детски. После плясок с бубном вокруг базы и вывода о том, что база и железо не причем. был переделан текст запроса на ВЫБРАТЬ | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1 КАК Контрагент, | ХозрасчетныйОстатки.Субконто2 КАК Договор, | ХозрасчетныйОстатки.Субконто3 КАК ДокументРасчетов, | ХозрасчетныйОстатки.СуммаОстатокДт КАК СуммаДолг |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &Дата, | Счет =&Счет, ХозрасчетныйОстатки.Субконто1 = &Контрагент) КАК ХозрасчетныйОстатки После чего запрос тупо залетал. Это так и должно быть? |
|||
1
probably
30.12.14
✎
05:37
|
(1) да
|
|||
2
SeraFim
30.12.14
✎
05:40
|
Да. Сначала база у тебя была маленькая, поэтому все работало быстро.
При запросе выгребались и считались остатки по всем контрагентам а условие накладывалось уже после подсчета остатков. Но так как их было мало - все было быстро. Со временем их стало много и стало тормозить. После того как ты переделал - остатки стали считаться только по одному контрагенту, вот отсюда и быстродействие |
|||
3
Web00001
30.12.14
✎
06:01
|
Вот так еще один человек узнал, про параметры виртуальной таблицы.
|
|||
4
Sasha_1CK
30.12.14
✎
06:18
|
(3) ну да видимо - как то так это и происходит.
но концепция писалась еще в файловом варианте - где, насколько я понимаю, это было по фиг. Но раз разбираться - то до конца. 1. не понятна резкость впороса - когда база потихоньку растет - и все потихоньку замедляется - это понятно, непонятно почему вчера это занимало секунд 30-40 ( а банк они разносят ежедневно) - а сегодня резко стало 5-7 минут. 2 не очень понятна связь между объемом базы и таблицей остатки - с одной стороны - база растет и объем ее увеличивается - с другой стороны - таблица остатков же рассчитывается и хранит промежуточные итоги - соответственно зависимость между объемом базы и таблицей остатков не должна быть линейной - ведь по факту - у меня как на начало года было где тысяч 30 записей по долгам 62 счета, и на конец года - примерно эти же 30 тысяч записей и остались - только аналитика изменилась . |
|||
5
Помогите
30.12.14
✎
06:33
|
(4) А количество контрагентов разве не растет? Ели растет, то и таблица остатков тоже растет.
|
|||
6
Andrewww123
30.12.14
✎
06:36
|
(4) В SQL-сервере обновление статистики и прочие регламентные процедуры делаются?
|
|||
7
Trier
30.12.14
✎
06:56
|
Стаж: 8 лет 3 месяца 10 дней
Офигеть |
|||
8
Trier
30.12.14
✎
06:57
|
Представляю, как ты удивишься, когда узнаешь еще, что субконто в запросе можно еще выражать
|
|||
9
Sasha_1CK
30.12.14
✎
07:03
|
(5) нет регион закрытый - изменение активной базы за год -+ 2-3%
(6) да . (7) можешь еще года 4 добавить )) (8) а нельзя ли поподробнее как это поможет с точки зрения производительности запроса? |
|||
10
ejiki
30.12.14
✎
07:19
|
Ващеееееее %)
При отборе Через "Где" Запрос собирает все данные, а потом накладывает на них отбор. А в параметрах указав ты отбираешь только с данным значением. |
|||
11
dk
30.12.14
✎
07:37
|
(9) раз все пофигу - вытащи тогда и фильтр по счету наружу - посмотри как это будет пофиг ))
|
|||
12
vitanimka
30.12.14
✎
08:48
|
ТС, почитай книжку по запросам (забыл как точно называется) от 1С, узнаешь много нового.
|
|||
13
Casey1984
30.12.14
✎
08:52
|
Может еще в параметрах ХозрасчетныйОстатки.Субконто1 выразить? Что там теория говорит?
|
|||
14
Escander
30.12.14
✎
08:57
|
(0) все условия пихать в параметры виртуальной таблицы - это основа основ
|
|||
15
Поpyчик-4
30.12.14
✎
09:02
|
(0) Особенность запросов к остаткам и оборотам, известная со времён 8.0.
|
|||
16
hhhh
30.12.14
✎
09:06
|
(13) не, это если бы было Субконто1.Реквизит, тогда да, Выразить, а так пофигу.
|
|||
17
Sasha_1CK
30.12.14
✎
09:12
|
(15) вот как раз за 8.0 то я вообще не успел, как и за 8.1 - когда народ более менее на 8-ку начал переползать - уже 8.2 и 8.3 случились.
Так что эти нюансы от меня как то ускользнули. Впрочем я сейчас замерил на файловой копии базы (17 гб) - для счета и контрагента в параметрах виртуальной таблицы - замер показал 0.9 сек, если указать их через "где" - то 3 сек. А так что бы реально увидеть и осознать разницу - вот только сейчас на одном предприятии база доросла до соответствущих размеров. |
|||
18
Бертыш
30.12.14
✎
09:31
|
(17) Кстати. Итоги рассчитаны на когда? А то может она у тебя крутит для выдачи итогов расчет с 01.01.1980 ну или с когда Вы там начали работать :)
|
|||
19
Лефмихалыч
30.12.14
✎
09:33
|
(0) отбор по видам субконто еще воткни, а потом пересиль себя и прочитай "Профессиональную разработку" хотя бы самую первую - для 8.0/8.1
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |