Pelaksanaan Prosedur Asynchronous dalam SQL Server
Dalam konteks SQL Server 2008 R2, pertanyaan biasa melibatkan pelaksanaan dua pernyataan secara berurutan:
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)'
Walau bagaimanapun, kenyataan kedua kekal tidak dilaksanakan sehingga yang pertama selesai. Pelaksanaan berurutan ini boleh menimbulkan masalah, terutamanya apabila penyataan pertama mengalami kelewatan yang ketara.
Bolehkah Penyata EXEC Dilaksanakan Selari?
Persoalannya timbul: adakah mungkin untuk melaksanakan kenyataan ini selari untuk mengoptimumkan prestasi? Walaupun SQL Server membenarkan pelaksanaan prosedur tak segerak, pendekatan ini mungkin bukan penyelesaian yang paling sesuai dalam kes ini.
Pelaksanaan Prosedur Tak Segerak
Pelaksanaan prosedur tak segerak membolehkan prosedur tersimpan untuk dilaksanakan dalam sesi SQL Server yang berasingan. Pemisahan ini membolehkan pernyataan pertama meneruskan pelaksanaannya tanpa menyekat pernyataan kedua. Walau bagaimanapun, pelaksanaan prosedur tak segerak direka terutamanya untuk permintaan yang bebas dan tidak mempunyai kebergantungan antara satu sama lain.
Akses Data dan Paralelisme
Adalah penting untuk menyedari bahawa T-SQL beroperasi terutamanya sebagai bahasa akses data. Apabila berurusan dengan transaksi, mengunci dan operasi komit/balik semula, mencapai keselarian sebenar adalah mencabar. T-SQL selari biasanya digunakan dalam senario yang melibatkan baris gilir permintaan, di mana setiap permintaan adalah bebas dan tidak mempunyai korelasi antara kerja.
Pendekatan Alternatif
Dalam konteks contoh disediakan, di mana objektifnya adalah untuk mendapatkan rekod, menguncinya, dan seterusnya melaksanakan kenyataan lain semasa ia dikunci, penyejajaran mungkin bukan penyelesaian yang optimum. Sebaliknya, pertimbangkan untuk menggunakan mekanisme kunci meja dan teknik pengurusan benang untuk mengurus akses serentak dan manipulasi data.
Atas ialah kandungan terperinci Bolehkah Penyata SQL Server EXEC Berjalan Selari?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!