Разница в производительности между представлениями и временными таблицами

Есть ли существенная разница в производительности таблиц Views и Temporary. У меня такая ситуация, как перенос данных из одной базы данных в другую. Мне нужно извлечь исходные данные из представлений в таблицы в целевой базе данных.

Поскольку в нем нет уникального поля, я попытался извлечь данные из представлений во временную таблицу и обработать их, чтобы поместить данные в целевую таблицу. Я не нахожу каких-либо серьезных изменений производительности по времени.


person user824910    schedule 10.04.2012    source источник


Ответы (1)


Основное различие между временными таблицами и представлениями заключается в том, что временные таблицы — это просто таблицы в базе данных tempdb, а представления — это просто сохраненные запросы к существующим данным в существующих таблицах. Таким образом, нет необходимости заполнять представление, потому что данные уже здесь. Но сначала необходимо заполнить временную таблицу, а заполнение является основной проблемой, связанной с предварительным выполнением.

person Alex_L    schedule 10.04.2012
comment
Я согласен с вашей точкой зрения, что для заполнения временной таблицы требуется время, но меня беспокоит то, что после заполнения во временной таблице есть данные ... что даст максимальную производительность ... как временные таблицы находятся в кэш-памяти, которую он может быть быстрее по сравнению с просмотрами? - person user824910; 10.04.2012
comment
Нет, они оба хранятся на диске одинаковым образом. Я думаю, вам просто нужно изучить планы выполнения запросов в обоих случаях. - person Alex_L; 10.04.2012
comment
это похоже на то, что представления также находятся в кэш-памяти, как и временные таблицы? - person user824910; 10.04.2012
comment
Временные таблицы хранятся в базе данных tempdb, а не в памяти. Например, вы можете прочитать об этом здесь aartemiou.blogspot.com/2009/04/ и здесь stackoverflow.com/questions/3012662/ . - person Alex_L; 10.04.2012