Есть ли какие-либо различия в производительности между использованием явного оператора создания таблицы и загрузкой данных по сравнению с выбором в. В этом примере показаны всего 2 столбца, но вопрос ориентирован на использование очень больших таблиц. В приведенном ниже примере также используются временные таблицы, хотя мне также интересно, как они влияют на использование обычных таблиц. Я думаю, что они будут одинаковыми вне зависимости от типа таблицы.
Сценарий временной таблицы:
--- Explicitly creating temp table first and then loading.
create table #test1 (id int, name varchar(100))
insert into #test1 (id, name) select id, name from #bigTable
--- Creating temp table by selecting into.
select id,name into #test2 from #bigTable
или обычные таблицы:
--- Explicitly creating table first and then loading.
create table test1 (id int, name varchar(100))
insert into test1 (id, name) select id, name from #bigTable
--- Creating table by selecting into.
select id,name into test2 from bigTable
Что все думают по этому поводу? Я думаю, что явное создание таблицы и загрузка должны иметь лучшую производительность, чем выбор в as select into должен оценивать выражения внутри оператора, чтобы создать таблицу.
Наша организация обычно создает временные таблицы явно как стандартная практика, и мы интересно, что, по мнению всех, на самом деле является наилучшей практикой.