ТаблицаЗначений НайтиСтроки() и индексы #689700


#0 by Rounder
Есть таблица значений. К ней в цикле делается НайтиСтроки с отбором по двум колонкам. Так же в это цикле возможно добавление строк в таблицу значений при выполнении определенного условия. Добавленная строка автоматически индексируется?
#1 by exwill
Нет. В таблице значений строки вообще не индексируются. Незачем.
#2 by exwill
+ А нет. Сейчас  посмотрел. Есть у таблиц значений индексы. И чего только люди не придумают.
#3 by Rounder
вопрос открыт - добавленная строка автоматически индексируется?
#4 by х86
>>Добавленная строка автоматически индексируется а что есть еще какой-то способ?
#5 by dj_serega
Что значит "Индексируется"?
#6 by Rounder
Я не знаю есть ли еще какой способ, но проверял опытным путем. Найти строки идет с отбором по обеим колонкам ТЗ (Колонка1, Колонка2). Без индексирования = 455с С индексом по (Колонка1, Колонка2) = 455с С двумя индексами (Колонка1), (Колонка2) = 455с Индексы создавались на пустую таблицу после ее создания.
#7 by Rounder
Нужно ли т.с. переиндексировать ТЗ после добавления строки.
#8 by Rounder
Т.е. в моих вариантах я индексированием не добился вообще никакого выигрыша по времени. Возможно я что-либо делаю не так - т.к. впервые пытаюсь индексировать ТЗ.
#9 by hhhh
просто в 8.0 таблицы значений были неиндексированные. Поэтому закрытие месяца выполнялось от 2-х до 7-ми дней. Самое главное нововведение в 8.1, прям исторический прорыв: появились индексы в таблицах значений.
#10 by Sammo
Если индекс добавлен, то индексируются. Если индекса нет, то не индексируются. Индекс ведь в ТЗ добавили?
#11 by DexterMorgan
Проиндексируй по колонкам отбора уже готовую таблицу
#12 by Rounder
Да - как и написал в . Но если все в порядке с индексами - почему нет выигрыша во времени?
#13 by Maxus43
автоматически ничего не индексируется, если на ТЗ не навешан Индекс принудительно
#14 by Rounder
не могу - почему написано в . После выполнения НайтиСтроки возможно добавление строки. И что? После каждого добавления чистить и создавать новые индексы?
#15 by Rounder
я ж написал что индекс навешивается принудительно но на пустую таблицу, после ее создания.
#16 by Maxus43
запихни в ВТ индексированную, там отбор в запросе делай, должно быть быстрей всё
#17 by Rounder
Если это неправильно - то как тогда нужно сделать?
#18 by Rounder
т.е. запрос к ВТ в цикле?
#19 by Maxus43
я не уверен что НайтиСтроки юзает индексы вобще, а ты уверен?
#20 by Maxus43
проверь будет ли быстрей, а вобще ничо криминально не вижу, если оправданно по скорости
#21 by Rounder
Не уверен. Но на форуме где-то видел такое предположение.
#22 by Rounder
Ок - сча попробую.
#23 by DexterMorgan
Найти и НайтиСтроки будет использовать индексы, если они есть
#24 by Rounder
почему тогда нет выигрыша во времени?
#25 by DexterMorgan
#26 by DexterMorgan
Походу заново нужно индексировать при добавлении строки
#27 by hhhh
наверно не по тем полям проиндексировал.
#28 by Maxus43
Ок
#29 by DexterMorgan
Кстати да, если в отбор входит несколько полей, на комбинацию этих полей нужно сделать отдельный составной индекс
#30 by Rounder
В я писал, что пробовал и с двумя отдельными индексами, и с одним составным - итог тот же.
#31 by DexterMorgan
Если проиндексировать непосредственно перед самим отбором?
#32 by Rounder
Если индексировать в цикле - то вообще жуть получается.
#33 by y22-k
ХЗ я делал таблицу около 4,5 К записей с индексом намного быстрее ищет значение
#34 by Rounder
Ах да. Вряди ли это меняет дело - но все же уточню: управляемые формы.
#35 by Rounder
Вряд ли ты смоделировал мою ситуацию, где практически через итерацию в цикле добавляется еще одна строка к ТЗ.
#36 by DexterMorgan
У него таблица может меняться после поиска. Я думаю нужно менять алгоритм тогда - например использовать неск тз (одна проиндексирована в другую добавляешь)
#37 by Rounder
Не выйдет, т.к. добавлять или нет решается по итогам поиска в ТЗ.
#38 by GANR
Автоматически там ничего не индексируется
#39 by Rounder
Пока всем спасибо. Сча попробую с запросами - выложу результат сюда. Почитаю те ссылки, что вы дали.
#40 by hhhh
индексируй один раз. Или в самом начале, или в конце.
#41 by Aprobator
сделай таблицу копию по структуре и добавляй строки в нее, потом скопируешь их с нее в основную.
#42 by DexterMorgan
ищи по двум тз. По индексированной с куевой тучей и во второй где добавляешь. В любом случае нужны замеры
#43 by DexterMorgan
У него проблема в том, что поиск используется при добавлении. т.е. все время нужно заново индексировать
#44 by Rounder
С запросом вообще мрак - так что отпадает.
#45 by hhhh
не, вроде при добавлении строчки, она индексируется.
#46 by DexterMorgan
Если честно, я не проверял) но судя по не индексируется
#47 by hhhh
ну, ТС нельзя полностью доверять в таком вопросе. Может он в другом месте накосячил. Я-то всегда добавлял индекс при создании таблицы. И в синтакс-помощнике ничего нет про это. Что индексы таблицы значений отличаются от индексов в базе, например.
#48 by Aprobator
а чего искать то, что ты только что добавил?
#49 by Sammo
Хотелось бы увидеть - как создается индекс и как делается отбор. Прямо куски кода
#50 by H A D G E H O G s
Жесть какая-то. Все индексируется, при добавлении строки индексы обновляются.
#51 by H A D G E H O G s
Каких то структур понапридумывали, в Запрос чето помещают.
#52 by Ярус
+100
#53 by catena
Вы не умеете готовить индексы. Создаю индексы на пустую таблицу, заполняю, поиск. Без индекса 102.9, с индексом 0.09
#54 by Salimbek
Не знаю, что там у тебя криво создается, я попробовал, трагедии не увидел.
#55 by Rounder
Всем спасибо. Подумал - перестрою алгоритм.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С