Penyata EXEC Selari dalam Pelayan SQL: Adakah Ia Boleh Dilaksanakan?
Dalam SQL Server 2008 R2, melaksanakan berbilang penyata EXEC secara selari boleh menjadi cabaran yang membingungkan. Pertimbangkan contoh berikut:
EXECUTE sp_executesql N'PRINT ''1st '' + convert(varchar, getdate(), 126) WAITFOR DELAY ''000:00:10''' EXECUTE sp_executesql N'PRINT ''2nd '' + convert(varchar, getdate(), 126)'
Sementara pernyataan pertama menangguhkan pelaksanaan selama 10 saat, jangkaan pelaksanaan segera bagi pernyataan kedua dihentikan sehingga pernyataan pertama selesai. Penjujukan ini ialah aspek asas kelakuan T-SQL.
Objektif asas adalah untuk mendapatkan semula rekod, menguncinya buat sementara waktu dan secara serentak melaksanakan operasi lain yang melibatkan rekod itu dan jadualnya. Melaksanakan kenyataan secara tidak segerak berpotensi menangani cabaran ini.
BEGIN TRY EXEC sp_OASetProperty N'Is Network Packet Size Limited', 1 EXEC sp_OAGetProperty N'Is Network Packet Size Limited' END TRY
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa T-SQL bertujuan terutamanya untuk manipulasi data, dan sifat transaksinya, ditambah dengan mekanisme kunci dan komit/balik semula, menjadikan keselarian sebenar hampir mustahil. Keselarian lebih sesuai untuk operasi bebas dalam baris gilir permintaan, seperti dalam proses ETL.
Oleh itu, walaupun pelaksanaan tak segerak mungkin memberikan penyelesaian separa, adalah penting untuk menilai sama ada senario khusus anda benar-benar boleh diterima oleh selari. Integriti data dan semantik transaksi harus menjadi pertimbangan utama apabila meneroka pendekatan sedemikian.
Atas ialah kandungan terperinci Bolehkah Penyata SQL Server EXEC Benar-benar Berjalan Selari?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!