Имя: Пароль:
1C
1С v8
ТаблицаЗначений НайтиСтроки() и индексы
0 Rounder
 
27.11.13
13:06
Есть таблица значений. К ней в цикле делается НайтиСтроки() с отбором по двум колонкам.
Так же в это цикле возможно добавление строк в таблицу значений при выполнении определенного условия.

Добавленная строка автоматически индексируется?
1 exwill
 
27.11.13
13:08
(0) Нет. В таблице значений строки вообще не индексируются.
Незачем.
2 exwill
 
27.11.13
13:11
+(1) А нет. Сейчас  посмотрел. Есть у таблиц значений индексы.
И чего только люди не придумают.
3 Rounder
 
27.11.13
13:12
вопрос открыт - добавленная строка автоматически индексируется?
4 х86
 
27.11.13
13:12
>>Добавленная строка автоматически индексируется

а что есть еще какой-то способ?
5 dj_serega
 
27.11.13
13:13
(0) Что значит "Индексируется"?
6 Rounder
 
27.11.13
13:15
Я не знаю есть ли еще какой способ, но проверял опытным путем.
Найти строки идет с отбором по обеим колонкам ТЗ (Колонка1, Колонка2).
Без индексирования = 455с
С индексом по (Колонка1, Колонка2) = 455с
С двумя индексами (Колонка1), (Колонка2) = 455с
Индексы создавались на пустую таблицу после ее создания.
7 Rounder
 
27.11.13
13:16
(5) Нужно ли т.с. переиндексировать ТЗ после добавления строки.
8 Rounder
 
27.11.13
13:16
Т.е. в моих вариантах я индексированием не добился вообще никакого выигрыша по времени.
Возможно я что-либо делаю не так - т.к. впервые пытаюсь индексировать ТЗ.
9 hhhh
 
27.11.13
13:17
(2) просто в 8.0 таблицы значений были неиндексированные. Поэтому закрытие месяца выполнялось от 2-х до 7-ми дней.

Самое главное нововведение в 8.1, прям исторический прорыв: появились индексы в таблицах значений.
10 Sammo
 
27.11.13
13:17
Если индекс добавлен, то индексируются.
Если индекса нет, то не индексируются.

Индекс ведь в ТЗ добавили?
11 DexterMorgan
 
27.11.13
13:18
(8) Проиндексируй по колонкам отбора уже готовую таблицу
12 Rounder
 
27.11.13
13:19
(10) Да - как и написал в (6).
Но если все в порядке с индексами - почему нет выигрыша во времени?
13 Maxus43
 
27.11.13
13:19
автоматически ничего не индексируется, если на ТЗ не навешан Индекс принудительно
14 Rounder
 
27.11.13
13:19
(11) не могу - почему написано в (0). После выполнения НайтиСтроки() возможно добавление строки. И что? После каждого добавления чистить и создавать новые индексы?
15 Rounder
 
27.11.13
13:20
(13) я ж написал что индекс навешивается принудительно но на пустую таблицу, после ее создания.
16 Maxus43
 
27.11.13
13:20
(14) запихни в ВТ индексированную, там отбор в запросе делай, должно быть быстрей всё
17 Rounder
 
27.11.13
13:20
Если это неправильно - то как тогда нужно сделать?
18 Rounder
 
27.11.13
13:21
(16) т.е. запрос к ВТ в цикле?
19 Maxus43
 
27.11.13
13:21
я не уверен что НайтиСтроки юзает индексы вобще, а ты уверен?
20 Maxus43
 
27.11.13
13:22
(18) проверь будет ли быстрей, а вобще ничо криминально не вижу, если оправданно по скорости
21 Rounder
 
27.11.13
13:22
(19) Не уверен. Но на форуме где-то видел такое предположение.
22 Rounder
 
27.11.13
13:22
(20) Ок - сча попробую.
23 DexterMorgan
 
27.11.13
13:26
(19) Найти и НайтиСтроки будет использовать индексы, если они есть
24 Rounder
 
27.11.13
13:27
(23) почему тогда нет выигрыша во времени?
25 DexterMorgan
 
27.11.13
13:27
26 DexterMorgan
 
27.11.13
13:28
(24) Походу заново нужно индексировать при добавлении строки
27 hhhh
 
27.11.13
13:30
(24) наверно не по тем полям проиндексировал.
28 Maxus43
 
27.11.13
13:31
(25) Ок
29 DexterMorgan
 
27.11.13
13:32
(27) Кстати да, если в отбор входит несколько полей, на комбинацию этих полей нужно сделать отдельный составной индекс
30 Rounder
 
27.11.13
13:33
В (6) я писал, что пробовал и с двумя отдельными индексами, и с одним составным - итог тот же.
31 DexterMorgan
 
27.11.13
13:34
(30) Если проиндексировать непосредственно перед самим отбором?
32 Rounder
 
27.11.13
13:35
Если индексировать в цикле - то вообще жуть получается.
33 y22-k
 
27.11.13
13:35
(23) ХЗ я делал таблицу около 4,5 К записей с индексом намного быстрее ищет значение
34 Rounder
 
27.11.13
13:35
Ах да. Вряди ли это меняет дело - но все же уточню: управляемые формы.
35 Rounder
 
27.11.13
13:38
(33) Вряд ли ты смоделировал мою ситуацию, где практически через итерацию в цикле добавляется еще одна строка к ТЗ.
36 DexterMorgan
 
27.11.13
13:38
(33) У него таблица может меняться после поиска.
(32) Я думаю нужно менять алгоритм тогда - например использовать неск тз (одна проиндексирована в другую добавляешь)
37 Rounder
 
27.11.13
13:41
(36) Не выйдет, т.к. добавлять или нет решается по итогам поиска в ТЗ.
38 GANR
 
27.11.13
13:42
(0) Автоматически там ничего не индексируется v8: оптимизация поиска по структуре
39 Rounder
 
27.11.13
13:43
Пока всем спасибо.
Сча попробую с запросами - выложу результат сюда.
Почитаю те ссылки, что вы дали.
40 hhhh
 
27.11.13
13:43
(37) индексируй один раз. Или в самом начале, или в конце.
41 Aprobator
 
27.11.13
13:43
(35) сделай таблицу копию по структуре и добавляй строки в нее, потом скопируешь их с нее в основную.
42 DexterMorgan
 
27.11.13
13:44
(37) ищи по двум тз. По индексированной с куевой тучей и во второй где добавляешь.
В любом случае нужны замеры
43 DexterMorgan
 
27.11.13
13:46
(41) У него проблема в том, что поиск используется при добавлении. т.е. все время нужно заново индексировать
44 Rounder
 
27.11.13
13:48
(20) С запросом вообще мрак - так что отпадает.
45 hhhh
 
27.11.13
13:49
(43) не, вроде при добавлении строчки, она индексируется.
46 DexterMorgan
 
27.11.13
13:50
(45) Если честно, я не проверял) но судя по (6) не индексируется
47 hhhh
 
27.11.13
14:03
(46) ну, ТС нельзя полностью доверять в таком вопросе. Может он в другом месте накосячил. Я-то всегда добавлял индекс при создании таблицы. И в синтакс-помощнике ничего нет про это. Что индексы таблицы значений отличаются от индексов в базе, например.
48 Aprobator
 
27.11.13
14:04
(43) а чего искать то, что ты только что добавил?
49 Sammo
 
27.11.13
14:06
Хотелось бы увидеть - как создается индекс и как делается отбор.
Прямо куски кода
50 H A D G E H O G s
 
27.11.13
14:07
Жесть какая-то.

Все индексируется, при добавлении строки индексы обновляются.
51 H A D G E H O G s
 
27.11.13
14:07
Каких то структур понапридумывали, в Запрос чето помещают.
52 Ярус
 
27.11.13
14:12
(50) +100
53 catena
 
27.11.13
14:18
(6)Вы не умеете готовить индексы.
Создаю индексы на пустую таблицу, заполняю, поиск. Без индекса 102.9, с индексом 0.09

http://i067.radikal.ru/1311/f6/c3ec531c722b.png
54 Salimbek
 
27.11.13
14:18
(0) Не знаю, что там у тебя криво создается, я попробовал, трагедии не увидел.

http://yadi.sk/d/ZEXCoRRUDPiHn
55 Rounder
 
27.11.13
14:25
Всем спасибо.
Подумал - перестрою алгоритм.