У меня есть следующая проблема в SQL Server 2005: попытка вставить некоторые строки в табличную переменную занимает много времени по сравнению с той же вставкой с использованием временной таблицы.
Это код для вставки в табличную переменную
DECLARE @Data TABLE(...)
INSERT INTO @DATA( ... )
SELECT ..
FROM ...
Это код для вставки во временную таблицу
CREATE #Data TABLE(...)
INSERT INTO #DATA( ... )
SELECT ..
FROM ...
DROP TABLE #Data
Временная таблица не имеет ключей или индексов, часть выбора одинакова для двух запросов, а число результатов, возвращаемых выбором, составляет ~ 10000 строк. Время, необходимое для выполнения одного выбора, составляет ~ 10 секунд.
Версия временной таблицы занимает до 10 секунд, мне пришлось остановить версию переменной таблицы через 5 минут.
Я должен использовать переменную таблицы, потому что запрос является частью функции табличного значения, которая не разрешает доступ к временной таблице.
План выполнения для версии табличной переменной
План выполнения для версии временной таблицы
EXEC
какую-либо функцию ... думаю, я ошибся