• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы KiR
  • Дата начала
K

KiR

Хочется в целях повышения образованности уточнить такой момент - когда в восьмерке лучше использовать прямой запрос, а когда выборку (спр.выбрать())? Просто насколько я знаю запросы работают быстрее когда перебирается большой объем данных (если не ошибаюсь). Что такое менеджер виртуальных таблиц и как с ним работать?
Заранее всем спасибо!
 
K

KSergei

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

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

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

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

has

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

vitfil

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!