Saya memiliki masalah berikut dalam SQL Server 2005: mencoba memasukkan beberapa baris ke dalam variabel tabel membutuhkan banyak waktu dibandingkan dengan insert yang sama menggunakan tabel sementara.
Ini adalah kode yang akan dimasukkan ke dalam variabel tabel
DECLARE @Data TABLE(...)
INSERT INTO @DATA( ... )
SELECT ..
FROM ...
Ini adalah kode untuk dimasukkan ke tabel temp
CREATE #Data TABLE(...)
INSERT INTO #DATA( ... )
SELECT ..
FROM ...
DROP TABLE #Data
Tabel sementara tidak memiliki kunci atau indeks, bagian yang dipilih adalah sama antara 2 kueri, dan jumlah hasil yang dikembalikan oleh pilih adalah ~ 10.000 baris. Waktu yang diperlukan untuk menjalankan pemilihan saja ~ 10 detik.
Versi temp table membutuhkan waktu hingga 10 detik untuk dieksekusi, saya harus menghentikan versi variabel tabel setelah 5 menit.
Saya harus menggunakan variabel tabel karena kueri adalah bagian dari fungsi nilai tabel, yang tidak memungkinkan akses ke tabel sementara.
Paket eksekusi untuk versi variabel tabel
Rencana eksekusi untuk versi tabel temp
EXEC
pikir Anda tidak dapat menggunakan fungsi .... kira saya salah