Вариант 1:
Выбрать
Вт.Поле1,
Вт.Поле2,
Вт.Поле3,
Рег.Ресурс,
Из ВремТаб КАК Вт
ЛЕВОЕ Соединение РегистрСведений.Тест.СрезПоследних(, Измерение1 В (Выбрать Различные ВремТаб.Поле1 из ВремТаб Как ВремТаб) И Измерение2 В (Выбрать Различные ВремТаб.Поле2 из ВремТаб Как ВремТаб)) КАК Рег
По Вт.Поле1 = Рег.Измерение1 И Вт.Поле2 = Рег.Измерение2
Вариант2:
Выбрать
Вт.Поле1,
Вт.Поле2,
Вт.Поле3,
Рег.Ресурс,
Из ВремТаб КАК Вт
ЛЕВОЕ Соединение РегистрСведений.Тест.СрезПоследних(, Измерение1 В (&Массив1) И Измерение2 В (&Массив2)) КАК Рег
По Вт.Поле1 = Рег.Измерение1 И Вт.Поле2 = Рег.Измерение2
По варианту 1 в sql создается вложенный подзапрос.
А по варианту2 что будет?
(2) Конечно дольше возьми профайлер и посмотри во сколько скульных запросов у тебя развернется первый, а во сколько второй.
Во второй ты передаешь конечный массив параметром, а в первом должно построиться ещё 2 запроса по временной таблице + время на создание этих двух временных таблиц и выгрузку туда.
Спасибо за ответы. Понял, что если нельзя передать массив, то через выборку временной таблицы лучше не извращаться, а сделать левое соединение со срезом.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший