чем заменить НайтиСтроки() ? #616070


#0 by gosn1ck
всем известно что у таблицы значений метод НайтиСтроки работает очень медленно, собственно вопрос: а чем его заменить?
#1 by Irbis
Запросом, но вряд ли быстрее будет
#2 by Агент Инфостарта
1. Запросом. 2. Перебором.
#3 by DrShad
хрена себе очень медленно по сравнению с чем?
#4 by Trier
Да уж, перебором очень выгодно заменять НайтиСтроки...
#5 by Buster007
кому всем? и почему медленно?
#6 by Нуф-Нуф
и с чего это запрос будет медленее?
#7 by gosn1ck
операция выполняется 20тыс раз. запрос в цикле будет работать быстрее?
#8 by DrShad
а накуя запрос в цикле? и с какого перепугу 20000 раз искать строки?
#9 by Нуф-Нуф
фигасе подача. ты где в сабже про цикл говорил, индеец, а теперь что-то предъявляешь.
#10 by Buster007
и много уходит на поиск? Проиндексируй ТЗ по тем полям по которым осуществляешь поиск и будет тебе счастье. У меня и на больших количествах всё летало.
#11 by Cube
)))))))))))))) +1
#12 by Нуф-Нуф
в любом случае прав. запрос с индексами грамотнее НайтиСтроки, которые работают простым перебором
#13 by gosn1ck
окей спасибо
#14 by andrewks
добавить индексы ещё не предлагали?
#15 by Ненавижу 1С
НайтиСтроки не работает с условиями типа "Сумма>0 И НДС<>0"
#16 by zinch
Построитель
#17 by H A D G E H O G s
Индексы аутору могут и не помочь.
#18 by H A D G E H O G s
Запрос идет ф топку.
#19 by H A D G E H O G s
20 тыс раз  искать - это каким смелым надо быть... Тут один лишний раз заставишь по таблице сложно искать - задумаешься.
#20 by Buster007
такое ощущение, что цифра в 20 тыс очень большая. Может быть стоит попробовать, а потом делать выводы? У меня максимально где-то 65 тыс раз искалось причем методом НайтиСтроки. Замедлений не обнаружено.
#21 by H A D G E H O G s
Если это ТЗ - кэш к примеру, и данные идут потоком, как при обмене - тогда хоть 100500 раз пусть ищется. В другом случае - надо смотреть алгоритм. Зря так автор, зря зря зря. p.s. Я его разозлить пытаюсь, чтобы он код выложил, а мы бы посочувствовали.
#22 by experimentator76
давай уже рассказывай о чем цикл найтистроки ищет в памяти, но тупой - то есть ищет по равно запросом создает ВТ в базе, в принципе скуль оптимизирует доступ к данным и не всегда чтение идет с диска кроме того запрос более гибкий по критериям отбора все зависит от задачи - возможно можно разбить ТЗ на готовые варианты без постоянного поиска по ней
#23 by Rovan
индексы + есть еще способ доп. кеширование найденных строк например в соответствие это на случай если велика вероятность что по таким значениям поиск будет повторяться
#24 by H A D G E H O G s
Глупость.
#25 by gosn1ck
мне обработка в наследство досталась, очень клёвым образом выводит отчет-шахматка. алгоритм таков: 1) выборка по колонкам (складам) 2) выборка по строкам (номенклатуре) 3) ТЧ в которой имеются данные по продажам и остаткам (по каждому складу и остаткам). после того как данные получены делается перебор 1ой выборки в этом же цикле 2ой, а затем поиск нужных данных.
#26 by gosn1ck
вот всё это я и пытаюсь ускорить... кстати насчет индексов я так и не понял добавить нужные поля после ключевого слова "ИНДЕКСИРОВАТЬ ПО" в запросе или воспользоваться индексами конечного ТЗ?
#27 by aleks-id
какой шикарный копроалгоритм. в мемориз! переписывай обработку и делай все запросом.
#28 by aleks-id
кстати, на СКД такой отчет накидывается за 10 минут
#29 by gosn1ck
спасибо, но не всё так просто. я привел общий алгоритм как это работает.
#30 by DimVad
Конечной ТЗ
#31 by H A D G E H O G s
#32 by H A D G E H O G s
либо
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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