|
v7: 1С++ Индексированная таблица, метод Группировать тормозит |
☑ |
0
Холст
03.06.14
✎
12:17
|
1С++ версия 3.2.2.0, ось винда 2008, размер исходной ТЗ 978строк
группировка идет по 2м показателям, на выходе после группировки почти столько же строк
кусок кода
ТЗинд = СоздатьОбъект("ИндексированнаяТаблица");
ТЗинд.Загрузить(ТЗ);
ТЗинд.Группировать(СтрГруппировокИнд, СтрРесурсы, 0);
почему-то группировка выполняется секунд 10 на таких мелких данных
в чем может быть затык ? и как ускорить группировку ?
|
|
1
Холст
03.06.14
✎
12:19
|
кажись индекс надо добавить как то
|
|
2
dk
03.06.14
✎
12:25
|
покажи что в СтрГруппировокИнд
там если ссылки то надо * добавлять, иначе по наименованию будет долго группировать
|
|
3
Холст
03.06.14
✎
12:25
|
хотя, возможно при групировке и не требуется добавлять индекс ?
|
|
4
Холст
03.06.14
✎
12:26
|
(2) понял, подставлю * там где группировка по справочникам/документам
|
|
5
Холст
03.06.14
✎
12:34
|
подставил * в индексное выражение без разбора на тип колонки и стало летать, спасибо
|
|
6
ADirks
03.06.14
✎
13:10
|
все подставляют магическую * и радуются, хотя и не понимают что произошло :)
колдунство процветает во все века!
|
|
7
Холст
03.06.14
✎
13:20
|
(6)
1. без * алгоритм процедуры Группировать для каждой ячейки формирует представление, потом только группирует по похожести, отсюда и лишнее время, правильно понял ?
2. получается, если не ставить *, то 2 разных элемента справочника с одинаковым наименованием будут для алгоритма как 1 элемент и это приведет к неверной группировке, так ?
|
|
8
ildary
03.06.14
✎
13:35
|
(6) низкий поклон главному колдуну, подарившему нам ИТЗ.
|
|
9
ADirks
03.06.14
✎
13:35
|
(7)
1. да, и самое главное - для этого 1С для каждого элемента лезет в БД.
2. нет, это только в 1С такие глюки не исправляют. Мы исправили :)
|
|
10
Холст
03.06.14
✎
14:16
|
(9) спасибо, что подарили 1С++ 7чникам
|
|
11
Salimbek
04.06.14
✎
08:59
|
(5) А если вдруг начнешь большими выборками работать, то желательно будет в запрос с данными вытащить еще и поле "<ИмяКолонкиСправочника>_Родитель", т.к.:
> Если в таблице есть колонка с именем
> '<ИмяКолонкиСправочника>_Родитель', то родитель для элемента будет браться
> из этой колонки - это уменьшает количество обращений к базе,
> и заметно увеличивает производительность.
|
|