ОФФ: Индексация полей в запросах. #580187


#0 by Error pro
Всем привет, нашел статью по оптимизации запросов а именно индексации. Возник вопрос имеет ли смысл индексировать какое либо поле вот в таком пакете (В регистре 2 измерения(Номенклатура,склад) и 2 ресура(Сумма,Кол-во)) :                   К решению задачи есть требование индексации полей. Искал в книге знаний какие-либо статьи про индексацию - не нашел, если можете тыкните. Спасибо.
#1 by Ненавижу 1С
зависит от контекста где это используется кстати слово РАЗЛИЧНЫЕ тут не нужно
#2 by Error pro
Да, уже убрал, я группирую ДокТЧ в первом пакете.
#3 by Max1986
а как к OFF это относится
#4 by Error pro
В данном запросе нужно индексировать?
#5 by Maxus43
в книжках написано что индексировать желательно все поля, на которые накладываются потом условия или по которым идут соединения
#6 by Ненавижу 1С
я не знаю как это используется потом
#7 by Megas
+ 100 Тоже смотрю и думаю, думаю. А вообще А ещё если разных записей мало то можно и не индексировать
#8 by Error pro
Спасибо, а я читал что  индекс будет работать всегда при отборе значения, 0,64% и меньше от общего количества строк, в ином случае будет полное сканирование таблицы Потом эта таблица левым соединением присоединяется по полю номенклатура
#9 by Maxus43
я именно про временные таблицы, в обычных запросах СУБД сама решает как использовать индексы
#10 by Error pro
Ясно, спасибо, лишняя индексация на производительность в худшую сторону никак не скажется?
#11 by acsent
конечно скажется
#12 by Maxus43
время на индексацию конечно затрачивается, но зависит всё от частной ситуации как всегда. Если таблица большая и с ней соединения например, то время индексации окупиться с лихвой
#13 by Axel2009
МС Скуль индекс будет срабатывать если выборка идет 33% значений порой имеет смысл творить покрывающий индекс, чтобы сервер не тратил время на позиционирование строки в основной таблице
#14 by Error pro
как я понял из и индексировать имеет смысл только виртуальные таблицы?
#15 by Maxus43
Только временные таблицы ты и можеш принудительно индексировать, остальное тупо не сможеш, нет там закладок индексации, рулит СУБД
#16 by Axel2009
нет
#17 by Error pro
Ясно, то есть в сабже имеет смысл написать индексацию если дальше по полю номенкалтура будет соединение? А какие еще?
#18 by Maxus43
да, или если условие будет. Так написано в настольной библии.
#19 by Error pro
Спасибо всем. Вопрос снят)
#20 by Axel2009
каждый случай индивидуальный.
#21 by Error pro
Ну есть же какие-то общие рекомендации к использованию индексации?
#22 by Error pro
+ как описали в
#23 by Maxus43
в книжке прочитай сам, я дословно не помню, но общий смысл в этом. Для вирт таблиц из 10-ти записей есно индексация не критична
#24 by Error pro
Ну конечно нужно понимать и учитывать уникальность записей, а книжка называется описание встроенного языка?
#25 by Maxus43
вродже тут
#26 by НЕА123
читай теорию. формула времени выполнения приблизительно такая С + О(N) где С - время построения индекса = константа(почти, естественно, зависит от колва записей, но при больших N функция О(N) незаметно), N - колво операций. при N = 0, 1 очевиден только вред индексирование. Для N = 2 - уже непонятно. Для больших N - индексация обязательна.
#27 by Error pro
дома лежит такая, седня вечером внимательно гляну
#28 by Error pro
спасибо, то что при N = 0, 1 очевиден только вред индексирования я уже понял.
#29 by Axel2009
общая рекоммендация - рассматривать КАЖДЫЙ случай индивидуально. это относится к скуль серваку. остальные не знаю, я не юзаю.
#30 by Axel2009
тоже не обязательно. если идет отбор по кластерному индексу, то я лучше выберу 3 раза из него, чем сформирую времянку и на нее навешу индекс и по нему проводить отбор.
#31 by Axel2009
далеко не факт. порой создание временной таблицы помогает оптимизатору правильно использовать индексы в условиях невозможности воздействия на этот самый план запроса.
#32 by Error pro
Кстати по поводу использования, коллега который летом сдал спеца, тоже утверждает что использовать смысла нет.
#33 by Megas
Смотря где. Скорость запроса увеличивается в десятки раз. К примеру с индексами 3 сек без индексов 30 сек.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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