У мене в 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
функцію .... здогадуюсь, я помилявся