Apa cara yang lebih baik (berkaitan dengan kinerja) untuk menetapkan nilai ke variabel?
Atas
SET
perintah:DECLARE @VarString nvarchar(max); SET @VarString = 'john doe'; SELECT @VarString;
Atas
SELECT
perintah:DECLARE @VarString nvarchar(max); SELECT @VarString = 'john doe'; SELECT @VarString;
sql-server
sql-server-2008
query-performance
Gadonski
sumber
sumber
SELECT
lebih cepat saat menetapkan nilai ke beberapa variabel sekaligus . Jika tidak, perbedaan kinerja dapat diabaikan.SET
lebih cepat, kemudian setengah jalan dia menambahkan: "Anehnya, jika Anda menghitung jumlah run up mengatakan, 10,SET
mulai tertinggal."Jawaban:
Jangan memilih satu atau yang lain hanya untuk kinerja.
Pilih berdasarkan apa yang sesuai dengan gaya dan kebutuhan pengembangan Anda, seperti yang disarankan dalam kesimpulan untuk perbandingan yang sangat baik antara
SELECT
danSET
(penekanan dan pemformatan minor ditambahkan):sumber
Saya pikir konsensus adalah ada perbedaan kinerja yang dapat diabaikan antara keduanya (dengan
SET
menjadi lebih cepat). Tetapi jika Anda seperti saya, saya akan menggunakan yangSET
sesuai untuk tujuan keterbacaan. Pria berikutnya yang akan menjaga kode Anda akan berterima kasih untuk itu ;-)sumber
Saya selalu menggunakan SET kecuali jika saya mengisi beberapa variabel dari set hasil dari 1 kueri. Dengan begitu, dengan menggunakan SELECT kami hanya meminta tabel sekali.
sumber