Pengoptimuman Padam Batch dalam SQL Server 2008
Dalam SQL Server, operasi pukal seperti salinan pukal (bcp) menyediakan teknik manipulasi data yang cekap. Walau bagaimanapun, persoalan timbul tentang ketersediaan ciri padam pukal yang serupa.
Pertanyaan:
Adakah terdapat sebarang penyelesaian untuk pemadaman pukal dalam SQL Server?
TRUNCATE tidak boleh digunakan untuk pemadaman terpilih, menyebabkan keperluan untuk klausa WHERE. Adakah terdapat alternatif kepada bcp untuk memadamkan data secara pukal?
Jawapan:
Tidak, SQL Server tidak menawarkan operasi pemadaman pukal khusus. Walau bagaimanapun, terdapat beberapa pendekatan untuk mengoptimumkan pemadaman kelompok:
Pemadaman Kelompok menggunakan @@ROWCOUNT:
SELECT 'Starting' --sets @@ROWCOUNT WHILE @@ROWCOUNT <> 0 DELETE TOP (xxx) MyTable WHERE ...
Pertanyaan ini melaksanakan penyataan DELETE dalam kelompok 'xxx' baris sehingga tiada baris yang tinggal.
Potong dan Sisipkan Kaedah:
SELECT col1, col2, ... INTO #Holdingtable FROM MyTable WHERE ..opposite condition.. TRUNCATE TABLE MyTable INSERT MyTable (col1, col2, ...) SELECT col1, col2, ... FROM #Holdingtable
Teknik ini berkesan apabila peratusan baris yang tinggi perlu dipadamkan. Ia mencipta jadual sementara dengan baris yang akan dikekalkan, memotong jadual asal dan memasukkan baris yang dikekalkan kembali ke dalam jadual.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Pemadaman Batch dalam SQL Server 2008?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!