Имя: Пароль:
1C
1С v8
Почему ВТ медленнее чем построитель запроса?
0 gar_den
 
12.07.14
12:06
Изначальное есть построитель, который тянет данные из регистра сведений - 1 млн.записей

Провел такой эксперимент: создаю таблицу 25 тыс записей, 13 колонок.

Тест 1: сношу изначальный текст запроса построителя, чтобы выбирать данные не из регистра, а из ИсточникаДанных. Запихиваю таблицу в ИсточникДанных построителя, формирую выбранные поля и поля отбора, выполняю, выгружаю результат - время выполнения - 200 мс.
Тест 2: делаю все то же самое с построителем, но в конце из построителя делаю запрос методом ПолучитьЗапрос() и передаю в него МенеджерВременныхТаблиц, в котором уже есть эта таблица. Текст "Выбрать из РегистрСведений" заменяю на "Выбрать из ВТ". В итоге время выполнения - 1700 мс. Таблица индексирована по полям поиска.

Почему настолько медленнее работает временная таблица чем построитель?
1 alle68
 
12.07.14
13:10
А в тестах время чего измеряется?
2 Ненавижу 1С
 
гуру
12.07.14
13:14
менеджер он же постоянно данные из БД берет вроде
3 alle68
 
12.07.14
13:18
(2) Нет, он их где-то хранит. Это же таблицы.
4 gar_den
 
12.07.14
13:31
время в мс - милисекунды
5 gar_den
 
12.07.14
13:31
выполнение запроса и выгрузка результата в ТЗ. Итоговая тз - 1 строка
6 GROOVY
 
12.07.14
14:06
Временные таблицы физически создаются в темпах. Потому и медленнее.
7 Ненавижу 1С
 
гуру
12.07.14
14:19
(3) хранит сервер БД
8 Сияющий Асинхраль
 
12.07.14
15:54
В какой-то старой методичке от УЦ говорилось, что временные таблицы на винт пишутся, т.е. их сначала надо записать куда-то и только потом обрабатывать, а запись на винт все-таки не самая быстрая операция в современных компах...
9 gar_den
 
12.07.14
16:52
ну и бред, это в духе 1С создать супер мега мощный инструмент который опять гавенно работае
10 gar_den
 
12.07.14
16:53
супер мега мощный нужные полезные виртуальные таблице с супер индексацией!!! и записывать их на винт))) что может быть гениальней)))
11 ДенисЧ
 
12.07.14
17:38
(10) да ты гений... Борис тебя заждался, чего ты ждёщь???
Он тебе даст отдвухсотыщ и 1с залетает!!!
12 Сияющий Асинхраль
 
12.07.14
17:57
(10) Ну не будь наивным... За любое удобство расплачиваться приходится :-(, кому-то деньгами, кому-то временем и скоростью... Просто реши для себя, что важнее - время работы отчета или удобство его разработки, и ищи компромисс между всеми требованиями...
13 Сияющий Асинхраль
 
12.07.14
18:02
+(12) А так, помнится, когда я еще плотно семеркой занимался народ чтобы использовать встроенные черные запросы делал некий хитрый Темп документ, в который сваливал нужные данные и к этому документу делал запрос, в котором делались и итоги с группировками и упорядочевание, ну а после получения данных документ и удалить можно было. Фактически 1С реализует подобную схему, но на уровне движка...
14 Necessitudo
 
13.07.14
00:07
(9) Вообще-то это не 1С придумало. В MS SQL также временные таблицы в tempdb и пишутся. Сейчас стараются tempdb на ssd диск выносить.
15 MrStomak
 
13.07.14
00:33
(10) В СУБД вообще все таблицы на дисках, прикинь.
16 dj_serega
 
13.07.14
00:55
(12) Не могу не согласиться. Временные таблицы очень удобны. А в повседневной жизни такие запросы редко используются;)
17 dj_serega
 
13.07.14
00:58
+ (16) на миллионы записей :)
18 Chai Nic
 
13.07.14
01:01
(14) На практике даже вынос tempdb на рамдиск практически не влияет на быстродействие в типичных операциях 1с.
19 Лефмихалыч
 
13.07.14
14:20
(0) может дело в том, что построитель все делает на клиенте и экономит тем самым на клиент-серверном взаимодействии?
20 Лефмихалыч
 
13.07.14
14:21
(17) у всех повседневная жизнь-то разная, так что говори за себя
21 alle68
 
13.07.14
16:23
В чистоте эксперимента и точности его описания все уверены?
М.б., автор предоставит обработки для ознакомления?
22 Necessitudo
 
13.07.14
23:00
(18) Ну при реструктуризации прирост в производительности очень даже неплох)
Закон Брукера: Даже маленькая практика стоит большой теории.