Поиск в результате запроса: ТЗ VS Выборка #733762


#0 by Timon1405
Часто возникают ситуации, когда нужно поискать что-нибудь в результатах запроса. Насколько мне известно, есть два варианта поиска: 1. Выгружаем результат запроса в ТЗ, индексируем колонку поиска, ищем через найти/найтистроки 2. Используем метод Выборка.НайтиСледующий, после найденной сбрасываем выборку. вопросов несколько: будет ли во втором случае выборка индексирована, что в каких случаях будет работать быстрее, что используете вы и почему(может быть свой вариант)? спасибо.
#1 by H A D G E H O G s
Колонку поиска не стоит индексировать.
#2 by Гёдза
Почему?
#3 by ShoGUN
Померяй.
#4 by H A D G E H O G s
Моего слова тебе недостаточно?
#5 by ДенисЧ
неа
#6 by H A D G E H O G s
Я не с тобой разговаривал.
#7 by РеализоВано
<Часто возникают ситуации, когда нужно поискать что-нибудь в результатах запроса> А для чего тогда запрос?
#8 by ShoGUN
Ты миссионер что ли? Знаешь - объясни, а на слово верить - это к журналистам :)
#9 by ДенисЧ
а мне до ширинки, с кем ты разговаривал. Обосновывай утверждение. Или слив считаем.
#10 by Гёдза
С каких пор ты стал истиной в последней инстанции? Экзамен сдал и зазвездился чтоли?
#11 by rozer76
еще как стоит... проверено 100%
#12 by ShoGUN
Для того, чтобы сформировать выборку в памяти.
#13 by Гёдза
У нас ту не клуб джентельменом, мы на слово не верим
#14 by rozer76
корона не жмет ?
#15 by РеализоВано
И потом по ней ещё раз искать чтото? Бред.
#16 by Бубка Гоп
О Великий! Твоего слова достаточно чтобы вода стала вином! Не слушай простых смердов!
#17 by H A D G E H O G s
Хехе, отлично.
#18 by ShoGUN
Пожалуйста вам: Загрузка данных из файла, при том, что часть данных(но не все!) уже существует в БД. Ищем данные запросом по ключам, если в результате запроса есть такие данные, то подставляем из результата запроса, если нет - создаём. Предложи, как решить эту задачу ТОЛЬКО запросом.
#19 by Timon1405
например, в ПриПолученииДанных получили набор свойств, их потом заполняем оформление строк.
#20 by H A D G E H O G s
Индексировать стоит в большинстве своем только долгоживущие данные. Если число поисков по таблице мало - смысла индексировать нет. Если число поисков по таблице велико (большая внешняя таблица) - проще обойти эти 2 таблицы в одном цикле (merge join). Все, согласно классике.
#21 by Бубка Гоп
я так понял тс ищет неоднократно, так что проиндексировать все таки смысл есть
#22 by H A D G E H O G s
Я думаю - проще обойти в одном цикле эти 2 отсортированные предварительно таблицы и сформировать массив найденных строк-совпадений. Да, тяжко и непривычно, но это оптимально и заставляет думать.
#23 by РеализоВано
Данные из файла в ТЗ, ТЗ в запрос с джойнить с номенклатурой, обойти и записать
#24 by РеализоВано
СКД многое умеет
#25 by ShoGUN
Офигенный замут. Только кто сказал, что в данных только номенклатура?
#26 by РеализоВано
в оформление по условию
#27 by РеализоВано
Да пофиг с чем сравнивать и соединять
#28 by H A D G E H O G s
Понравилась реакция Гёдзы. Надеюсь, это немного поможет ему более человечнее общаться на этом форуме.
#29 by Timon1405
самый простой пример: Нужно в списке номенклатуры/(обычные формы) видеть свойства(2-3 штуки) из РС ЗначенияСвойствОбъектов. аналогичное может требоваться в ТЧдокументов, списках документов итд, вместо этого РС может быть другая связанная информация. варианты "переходите на 8.7.125, там это реализовано" не предлагать
#30 by РеализоВано
Моё мнение все можно сделать в запросах и не делать лишних циклодвижений особенно для какой-то выборки по условия, а если нельзя, значит не удачная реализация структуры БД. Зачем напрягать приложение если СУБД сама все может сделать?
#31 by Управление торговлей
когда результаты запроса уже есть, зачем их выгружать или обходить? можно сразу к ним сделать еще запрос
#32 by palpetrovich
а это: 3. ТЗ в ВТ и запросом к ней?
#33 by H A D G E H O G s
СУБД может кончиться.
#34 by ShoGUN
Можно, вопрос как лучше. Мне решение с запихиванием ТЗ в ВТ не представляется лучшим. По сути ты вместо выборки данных и поиска в памяти - сначала пишешь в базу, потом начинаешь из этой же базы выковыривать. Причем либо генеришь индекс(что тоже - время), либо ищешь в куче, без индекса. Офигенно оптимальное решение. Зато сервер приложения не напрягается.
#35 by РеализоВано
И в чем проблема?
#36 by РеализоВано
Ну крутите в циклах
#37 by ShoGUN
Не, ну циклы - это "бред", как мы узнали из .
#38 by РеализоВано
Сделайте какую нить массовую начислялку, покрутите и сколько это время у вас расчет
#39 by РеализоВано
займет
#40 by H A D G E H O G s
Сервер СУБД нужно холить и лелеять - он один и больше не предвидется. Серверов 1С может быть побольше одного (хоть это и плохо из за синхронизации) - можно их озадачить. Но вот клиентов - дозвизды, как правило на относительно мощных машинах - вот их стегать и надо. Особенно если эти поиски вне транзакции.
#41 by РеализоВано
А нафига сервер тогда нужен? Зачем клиент сервеная аритектура??
#42 by ShoGUN
Она трёхзвенная, вообще-то. Вот СУБД нефиг делать, только всякий мусор во временных таблицах сохранять по 100 раз на дню.
#43 by Бубка Гоп
так кого же лучше напрягать, сервер 1с, субд или клиентов?
#44 by РеализоВано
Ещё раз повторюсь МОЁ, сугубо скромное, пройденное опытным путем в массовых начислений и оптимизации их, мнение все можно сделать и нужно на запросах, особенно всякие условия отбора!!! Приложение только для отображение полученных данных в формочках.
#45 by Maxus43
клиентов, если возможно
#46 by ShoGUN
Думаю, в каждом конкретном случае надо думать. Зависит от условий поиска и количества данных, а также от описанного в соотношения. Может у тебя клиенты дохлые совсем. СЛОЖНЫЕ условия - согласен, проще запросами. Простые - нет.
#47 by H A D G E H O G s
Клиента. Правда очень редко его напрягешь, так как чистых вычислений и нет толком - все завязано на работу с данными.
#48 by Ненавижу 1С
жесть жестяная давайте и документы на клиентах проводить, чего уж
#49 by H A D G E H O G s
Ты, походу, многого не знаешь о трехзвенке :-).
#50 by H A D G E H O G s
В типовой УПП документы проводятся на клиенте. Да, есть серверные блоки проведения. Но есть и клиентские. Учите 1С должным образом...
#51 by H A D G E H O G s
Предупреждая буквоедов: 1) да, есть Управляемый режим. 2) да, проведение документа можно вызвать из серверной процедуры в Обычном режиме.
#52 by Maxus43
в обычном приложении толстого клиента и так на клиенте проведение)
#53 by vhl
Индексировать есть смысл в любом случае. Случаев когда индексировать не нужно не существует.
#54 by H A D G E H O G s
Продолжайте индексировать в любом случае.
#55 by vhl
Да ты обкурился...
#56 by Дункан Маклауд
горбатого лепишь, вся запись в регистры делается на сервере, а это 80% нагрузки на БД, сами вычисления копейки по нагрузке
#57 by Дункан Маклауд
а что такое клиентские блоки проведения?
#58 by Дункан Маклауд
посмотри как сделано в типовых
#59 by H A D G E H O G s
Например, формирование проводок в процедуре ДвиженияПоРегистрамРегл документа РТУ.
#60 by H A D G E H O G s
, ты, щтоле? Давай, досвиданья.
#68 by Ненавижу 1С
это временно, переходят на сервер
#69 by H A D G E H O G s
Конечно в управляемом перейдут на Сервер. Но не потому что так быстрее. А потому что так "не медленнее", чем в Обычном. Почему? Потому что XDTO.
#70 by Maxus43
сам процесс записи естественно через сервер 1с на субд идёт, но также идёт передача всего объёма информации с клиента на сервер 1с, уже готового. Само формирование этих записей - на клиенте
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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