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

KiR

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

KSergei

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

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

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

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

vitfil

IT-интегратор
02.04.2004
2 062
0
#4
Спр.Выбрать() я бы использовал только в случае когда выборка нужна полностью, т.е. без каких либо отборов.
Согласен, но хотелось бы несколько дополнить ваш ответ: Выбрать(), насколько я понимаю, придуман для сокращения, дабы не писать несколько строк простого select. Быстрее в написании, но не быстрее в работе. ...и медленней работать не будет, потому как Выбрать() сервер все равно преобразует к простому селекту. Хотя, если учитывать время работы метапарсера, Выбрать() отработает на несколько наносекунд дольше.