Cara Mengemas kini Rekod dengan Cekap Menggunakan CASE dalam SQL Server 2005
Dalam SQL Server 2005, pernyataan CASE menawarkan cara yang serba boleh untuk melaksanakan bersyarat kemas kini. Walau bagaimanapun, apabila berurusan dengan jadual dengan bilangan rekod yang banyak, adalah penting untuk menggunakannya dengan bijak untuk mengelakkan kesesakan prestasi.
Pertimbangkan pertanyaan berikut:
UPDATE dbo.TestStudents SET LASTNAME = ( CASE WHEN (LASTNAME = 'AAA') THEN 'BBB' WHEN (LASTNAME = 'CCC') THEN 'DDD' WHEN (LASTNAME = 'EEE') THEN 'FFF' ELSE (LASTNAME) END )
Pertanyaan ini berjaya mengemas kini yang ditentukan rekod berdasarkan syarat yang diberikan. Walau bagaimanapun, ia menggunakan syarat ELSE yang mengimbas setiap baris dalam jadual, walaupun yang tidak perlu dikemas kini. Ini boleh memberi kesan ketara kepada prestasi dalam jadual besar.
Untuk mengoptimumkan pertanyaan, anda boleh menambah klausa WHERE untuk menapis baris yang perlu dikemas kini:
UPDATE dbo.TestStudents SET LASTNAME = CASE WHEN LASTNAME = 'AAA' THEN 'BBB' WHEN LASTNAME = 'CCC' THEN 'DDD' WHEN LASTNAME = 'EEE' THEN 'FFF' ELSE LASTNAME END WHERE LASTNAME IN ('AAA', 'CCC', 'EEE')
Dengan menyatakan nilai khusus yang perlu dikemas kini dalam klausa WHERE, pertanyaan hanya mengimbas baris yang sepadan dengan kriteria tersebut. Ini meningkatkan prestasi dengan ketara dan memastikan baris yang tidak terjejas kekal tidak berubah.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas Kini Rekod dengan Cekap dengan Penyata KES SQL Server 2005?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!