1c8 когда лучше использовать запрос, а когда выбор

Тема в разделе "1C и всё что с ней связано", создана пользователем KiR, 24 июл 2009.

  1. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Хочется в целях повышения образованности уточнить такой момент - когда в восьмерке лучше использовать прямой запрос, а когда выборку (спр.выбрать())? Просто насколько я знаю запросы работают быстрее когда перебирается большой объем данных (если не ошибаюсь). Что такое менеджер виртуальных таблиц и как с ним работать?
    Заранее всем спасибо!
     
  2. KSergei

    KSergei Гость

    Как правило спр.выбрать() в восьмерке не испольуют, лучше использовать прямой запрос

    Менеджер временных таблиц служит для передачи туда и хранения там всех результатов (первого или основного) запроса. По моему (если я не ошибаюсь) помещение данных во временную таблицу делает процедуру обработки проведения немного "универсальнее" в некоторых ситуациях.

    МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    ВременнаяТаблица = Новый Запрос;
    ВременнаяТаблица.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
    ТекстЗапросаДок = "
    |Выбрать
    | *
    |Поместить врТаб
    |из &ТаблицаДанных как мТаб
    |";
    ВременнаяТаблица.УстановитьПараметр("ТаблицаДанных", ТЗ);
    ВременнаяТаблица.Текст = ТекстЗапросаДок;
    ВременнаяТаблица.Выполнить();

    ПроверкаСтрок = Новый Запрос;
    ПроверкаСтрок.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
    ТекстЗапроса = "ВЫБРАТЬ
    | врТаб.Поле1,
    | ОстаткиДанных.КоличествоОстаток
    |ИЗ
    | врТаб КАК врТаб
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.<ИмяРегистра>.Остатки КАК ОстаткиДанных
    | ПО врДокумент.Поле1 = ОстаткиДанных.Поле1";
    ПроверкаСтрок.Текст = ТекстЗапроса;
    РезультатЗапроса = ПроверкаСтрок.Выполнить();
    Результат = Результат.Выгрузить();
     
  3. has

    has Гость

    Спр.Выбрать() я бы использовал только в случае когда выборка нужна полностью, т.е. без каких либо отборов. Но пока с такими еще не встречался:)
     
  4. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Согласен, но хотелось бы несколько дополнить ваш ответ: Выбрать(), насколько я понимаю, придуман для сокращения, дабы не писать несколько строк простого select. Быстрее в написании, но не быстрее в работе. ...и медленней работать не будет, потому как Выбрать() сервер все равно преобразует к простому селекту. Хотя, если учитывать время работы метапарсера, Выбрать() отработает на несколько наносекунд дольше.
     
Загрузка...

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