ฉันมีปัญหาดังต่อไปนี้ใน SQL Server 2005: การพยายามแทรกแถวบางแถวในตัวแปรตารางใช้เวลานานเมื่อเทียบกับการแทรกแบบเดียวกันโดยใช้ตารางชั่วคราว
นี่คือรหัสที่จะแทรกลงในตัวแปรตาราง
DECLARE @Data TABLE(...)
INSERT INTO @DATA( ... )
SELECT ..
FROM ...
นี่คือรหัสที่จะแทรกลงในตารางอุณหภูมิ
CREATE #Data TABLE(...)
INSERT INTO #DATA( ... )
SELECT ..
FROM ...
DROP TABLE #Data
ตารางชั่วคราวไม่มีคีย์หรือดัชนีใด ๆ ส่วนที่เลือกจะเหมือนกันระหว่าง 2 แบบสอบถามและจำนวนผลลัพธ์ที่ส่งคืนโดยการเลือกคือ ~ 10,000 แถว เวลาที่ใช้ในการดำเนินการเลือกอย่างเดียวคือ ~ 10 วินาที
เวอร์ชันของ temp table ใช้เวลาในการรันสูงสุด 10 วินาทีฉันต้องหยุดเวอร์ชันตัวแปร table หลังจาก 5 นาที
ฉันต้องใช้ตัวแปรตารางเนื่องจากแบบสอบถามเป็นส่วนหนึ่งของฟังก์ชันค่าตารางที่ไม่อนุญาตให้เข้าถึงตารางชั่วคราว
แผนการดำเนินการสำหรับเวอร์ชันตัวแปรตาราง
แผนการดำเนินการสำหรับเวอร์ชันตาราง temp
EXEC
ฟังก์ชั่นนี้ได้ แต่เดาว่าฉันผิด