8.х Один запрос всегда лучше трех?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем МалышкА, 9 мар 2014.

  1. TopicStarter Overlay
    МалышкА
    Offline

    МалышкА

    Регистрация:
    8 мар 2014
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    У меня сначала находятся товары из накладных за период, они мне нужны вместе с количеством (запрос долго работает, перебор накладных быстрее, ну да ладно). Потом к списку товаров ищутся спецификации, они тоже нужны в явном виде, потом ищется номенклатура из спецификаций - в остатках, чтобы узнать себестоимость.
    Есть вероятность, что в одном запросе это работало бы быстрее?
  2. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    да, будет быстрее. как минимум на время передачи результатов от базы к 1с. можете все сделать в одном пакете с временными таблицами, чтобы запросы сильно не переделывать.
    по первому запросу - почему долго работает? не должен (хотя конечно от получаемых данных зависит)
  3. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Не всегда один запрос лучше трех, в некоторых случаях 3 запроса могут оказаться оптимальней, но все зависит от задачи, если выхожа уж действительно нет, пусть лучше будет 3 небольших запроса, чем один и в 10 раз медленнее работающий. С другой стороны временные таблицы ни кто не отменял.
  4. jonsony
    Offline

    jonsony Опытный в 1С Заблокирован

    Регистрация:
    16 апр 2009
    Сообщения:
    224
    Симпатии:
    25
    Баллы:
    29
    вообще чем меньше обращений и вызовов к ИБ тем лучше, так что по идее 1 запрос лучше,
    но, как уже обратили внимание, всё зависит от задачи

    хотя в вашем случае можно не три, а два попробывать
    в первом получаете список номенклатуры, а во втором по этому списку спецификации к нему и номенклатуру по спецификациям
  5. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Все таки это заблуждение, при необходимости могу воспроизвести задачу когда два запроса будут работать быстрее чем один, это например выборка в УТ цен на товары по периодическому регистру сведений, всех цен на момент ввода выбранных документов по дате документа.
    С точки зрения реализации Вы не сможете "Здоровым" образом срезать регистр сведений из-за разумного ограничения таблиц 255 штук, а каждый срез виртуальной таблицы это новая таблица, в таком случае корректней написать пакет запросов, сформировать первый пакет, обработать на стороне клиента придав нужный вид, вернуть в пакет таблицу выбрав таблицу в еще один пакет и объединить оба пакета. Как не крути, но вопрос "Что лучше" далеко не всегда идёт в ногу с сформировавшимися "нормами", хотя в большинстве случаев это так.
  6. jonsony
    Offline

    jonsony Опытный в 1С Заблокирован

    Регистрация:
    16 апр 2009
    Сообщения:
    224
    Симпатии:
    25
    Баллы:
    29
    ну и зачем передёргивать фразы?
    фраза была
    задачи и условия разные бывают совершенно
  7. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Тык не передергивал, привел пример. Не дуться :)

Поделиться этой страницей