Индексы в ТЗ: поделитесь тонкостями... #538590


#0 by ДенисЧ
Есть ТЗ, добавляю туда индекс по паре колонок, потом делаю НайтиСтроки Если в структуре отбора больше значений, чем колонок в индексе, как оный индекс будет влиять на поиск? Интересует скорость...
#1 by Kashemir
Строй индекс исходя из точного набора значений структуры отбора.
#2 by H A D G E H O G s
Думаю - никак
#3 by ДенисЧ
Нереально, ибо структура меняется и каждый раз переиндексировать - больше времени потеряю
#4 by Kashemir
Тогда см.
#5 by Kashemir
Определи набор наиболее часто используемых вариантов отбора и переиндексируй нужные сочетания колонок, для остальных случаев - пусть ждут.
#6 by ДенисЧ
мда... Ну почему они всегда делают всё трансректально?...
#7 by Kashemir
Все в рамках банальной логики. Что не устраивает то ?
#8 by ДенисЧ
Мне банальная логика подсказывает, что нужно отобрать строки по существующему индексу, а потом среди отобранных уже искать по неиндексным колонкам, как, например, SQL делает...
#9 by vvf1973
скл так делает, потому что у него в индекс входит не больше 16 полей :-)
#10 by Kashemir
Одно дело крутить таблицы бд  на сервере, а другое - съедать ресурсы клиента на элементы малой применимости.
#11 by Stepa86
а кто сказал, что он не так делает? и вообще это действительно узкое место, на которое надо тратить силы для анализа?
#12 by ДенисЧ
Ага. Переделываю поиск по выборке на таблицы...
#13 by ДенисЧ
"кто сказал, что он не так делает" Я не говорил, я спрашивал :-) А говорили выше по ветке
#14 by Широкий
Временные таблицы в запросе?
#15 by ДенисЧ
нет
#16 by Stepa86
не увидел утверждения выше... можно попробовать сперва делать Скопировать по тем колонкам, что проиндексированы, а затем НайтиСтроки по оставшимся, можно даже в копии индексы навесить. Но чот сомневаюсь, что будет шустрее... только замеры расскажут как быстрее.
#17 by ДенисЧ
Прежде чем экспериментировать, хотелось бы понять логику... В БТК (большой толстой книге) не нашёл инфы...
#18 by Stepa86
в вопросах оптимизации нельзя полагаться на логику, эксперимент на реальных данных даст быстрее нужный ответ, чем копание теории... да и часто бывает, что с точки зрения теории должно работать быстрее, а на деле нифига
#19 by ДенисЧ
Ну сейчас я на 10000 строк наоптимизирую, а что потом будет, в реальной ситуации, на 50 000 строк? На 100 000? Знание логики может подсказать более оптимальный вариант...
#20 by Stepa86
дык и надо на 50000 строк тестить сразу, если возможно... а для определения влияния индекса не по всем колонкам для НайтиСтроки( можно и на 10тырах поэксперементировать
#21 by ДенисЧ
На реальных объёмах у меня на один запуск будет уходит по полчаса, это не работа...
#22 by Новиков
Если есть возможность, можно попробовать попытаться в том запросе где оно получается поместить его в темп (или если оно собирается без запроса - то просто поместить в темп), проиндексировать в темповой тз максимально возможное количество полей, потом через менеджер ВТ дергать простые селекты с условием из твоего темпа - скорее всего создание индекса на сервере покроет те затраты, которые будут при поиске по ТЗ без индексов (только на больших объемах). На меленьких, к бабке гадалке не ходи - будет проигрывать.
#23 by Новиков
оно, следует читать как "твое тз" :)
#24 by ДенисЧ
Ты уверен, что запрос к БД будет быстрей обращения к памяти?
#25 by ДенисЧ
+24 при учёте того, что код идет &НаСервере...
#26 by Jolly Roger
а скорость - это единственный критерий?
#27 by Mikeware
Еще наверняка критерий - "правильность" :-)))
#28 by ДенисЧ
Когда по месяцу себестоимость рассчитывается 17 часов - то да, пока единственный :-) Правильность - на совести 1сников...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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