Tabel sementara adalah TIDAK besar di SQL Server.
- Mereka memprovokasi kompilasi ulang rencana kueri yang memakan biaya.
- Membuat dan menghapus tabel juga merupakan operasi mahal yang Anda tambahkan ke proses Anda.
- Jika ada sejumlah besar data yang masuk ke data sementara, operasi Anda akan lambat karena kurangnya indeks. Anda BISA membuat indeks pada tabel sementara. Tapi saya tidak akan pernah merekomendasikan tabel sementara untuk apa pun dengan sejumlah besar catatan.
Pendekatan Anda yang lain:Untuk membuat dan kemudian menghapus tabel biasa, cukup buat overhead yang sama.
Pendekatan lain:Menggunakan tabel yang ada, menambah baris dengan kolom tambahan untuk membedakan baris mana yang berkaitan dengan setiap pengguna/sesi dapat digunakan. Menghapus beban untuk membuat/menjatuhkan tabel tetapi, kemudian, Anda harus paranoid dengan kode yang menghasilkan nilai untuk membedakan baris DAN Anda harus mengembangkan cara untuk mempertahankan tabel untuk kasus-kasus di mana sesi berakhir sebelum waktunya dan ada sisa (baris yang tidak dihapus pada akhir pemrosesan).
Saya menyarankan Anda untuk memikirkan kembali strategi pemrosesan Anda. Beberapa alternatif semudah menggunakan kueri berkorelasi, tabel turunan, atau variabel tabel. Lihatlah:http://www.sql-server- performance.com/articles/per/temp_tables_vs_variables_p1.aspx
Sunting: Pendekatan membuat dan menjatuhkan tabel biasa dan pendekatan menggunakan kembali tabel biasa ditambah dengan bidang tambahan:Keduanya akan menghasilkan kompilasi ulang rencana kueri karena jumlah data yang diubah akan memicu evaluasi ulang statistik tabel. Sekali lagi, pendekatan terbaik Anda adalah menemukan cara alternatif untuk memproses data Anda.