Имя: Пароль:
1C
1С v8
Использование виртуальных таблиц в многомиллионном регистре против физической таблицы
, ,
0 Вячеслав Петров
 
28.01.22
20:37
Если в регистре накопления много миллионов записей, то разумней в запросах использовать обороты или физическую таблицу?
Слышал, что обороты могут работать медленнее, но также гораздо чаще слышал, что нужно использовать именно виртуальные таблицы.

По замерам времени на mssql одинаково, на postgre "обороты" получаются дольше в полтора раза.

Как по нагрузке на систему не знаю (интуитивно кажется, что виртуальные таблицы тяжелей).
1 Ёпрст
 
28.01.22
20:42
(0) при правильной архитектуре регистра и  правильном тексте запроса, глубоко фиолетово на количество записей в этом регистре
2 Сергиус
 
28.01.22
20:55
В последних релизах разве не сделали обороты отдельной таблицей?
3 piter3
 
28.01.22
22:01
Читать или записывать? В связи с последними изм-ми
4 pechkin
 
28.01.22
22:06
регистр остатков или оборотов?
5 pavig
 
28.01.22
22:16
(0)
Запрос к виртуальной таблице должен использовать таблицу итогов, где свернутые данные.
Вроде как к агрегированным данным запрос должен выполняться быстрее.
Если запрашиваемый период находится внутри рассчитанного итога, то выполняется доп запрос к таблице движений.
Возможно, что постгри выбрал совсем не оптимальный план запроса... Но ИМХО это очень частный случай.
Однако ж в подавляющем большинстве случаев таки запросы к итогам и дополнение к физической таблице должны отрабатывать значительно быстрее, и меньше нагружать систему.
Это, кстати, максимально проявляется как раз при наличии большого количества записей.
6 palsergeich
 
28.01.22
23:40
(0) Если правильно их заархитектурить - то проблем не будет.
Беда в том, что любая ошибка при проектировании - будет очень дорогА.
И да надо по максимуму использовать итоги
7 youalex
 
29.01.22
03:15
(5) Но работа с таблицами итогов - это вложенные запросы (а не cte, например, почему-то).
Любые джойны со вложенными запросами могут очень негативно влиять на оптимальность (исходя из сложности построения оптимального плана выполнения запроса для оптимизатора скуля).
Поэтому стандартный метод (вроде бы даже описан как фэн шуй в ИТС) -  результат виртуальной таблицы - во временную, и все соединения, в т.ч. неявные - уже с временной таблицей. .
8 mistеr
 
29.01.22
12:15
(0) Если важно быстрое получение оборотов, то нужно использовать оборотный регистр.

С уважением, ваш К.О.
9 ДедМорроз
 
29.01.22
14:45
В случае оборотов - виртуальная таблица - это выборка из реальной,поэтому,в принципе,пофиг.
Но соединения лучше всего делать со временными индексированными таблицами,тогда тормозов не будет.
10 pavig
 
29.01.22
14:49
(7) это другое же ж совсем
11 pavig
 
29.01.22
14:49
(9)
а я думал что используются итоги...
12 pavig
 
29.01.22
14:51
https://infostart.ru/1c/articles/1062572/

Однако, здравствуйте.
13 МихаилМ
 
29.01.22
15:02
(0)Слово использование подразумевает некий сценарий.  тупая выборка на роль сценария не годится
14 H A D G E H O G s
 
29.01.22
15:28
лучше всего не слушать дедовморозов.
15 pechkin
 
29.01.22
15:44
(9) оно конечно лучше, но само создание таких таблиц может убить все преимущество и даже больше
16 ДедМорроз
 
29.01.22
15:59
(15) соединение неупорядоченных таблиц,в общем случае,может привести к полному скпнированию меньшей таьлицы в цикле по большей.
17 pechkin
 
29.01.22
16:51
(15) так упорядочивание тоже влечет полный скан
18 timurhv
 
29.01.22
17:13
(0)
>Слышал, что обороты могут работать медленнее, но также гораздо чаще слышал, что нужно использовать именно виртуальные таблицы.
Так никого не слушайте, нюансов много, сами читайте
https://its.1c.ru/db/metod8dev/content/1590/hdoc

https://infostart.ru/1c/articles/1062572/
https://infostart.ru/1c/articles/1064528/

https://infostart.ru/1c/articles/1061227/

https://infostart.ru/1c/articles/527518/
https://infostart.ru/1c/articles/184361/
19 timurhv
 
29.01.22
17:15
(9)
>В случае оборотов - виртуальная таблица - это выборка из реальной,поэтому,в принципе,пофиг.
Это не совсем так, в случае остаточного регистра накопления используется реальная таблица. Если тип оборотный, то будут использоваться итоги и реальная таблица.
20 ДенисЧ
 
29.01.22
17:37
(19) Это не совсем так. В остаточном только физическая используется при запросе на конец месяца...
21 timurhv
 
29.01.22
20:01
(20) Все нюансы в ссылках (18) описаны
22 Rovan
 
гуру
30.01.22
08:30
(7) всё правильно говоришь - именно ТАК и требует 1С для отчетов в системе Фреш,
т.к. у них там всё работает на постгрисе
И вероятно они уже "попадали" на зависания казалось бы простых отчетов !
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан