![]() |
|
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) А если вдруг начнешь большими выборками работать, то желательно будет в запрос с данными вытащить еще и поле "<ИмяКолонкиСправочника>_Родитель", т.к.:
> Если в таблице есть колонка с именем > '<ИмяКолонкиСправочника>_Родитель', то родитель для элемента будет браться > из этой колонки - это уменьшает количество обращений к базе, > и заметно увеличивает производительность. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |