Dalam kod warisan, mengurus penutupan dan pelupusan SqlDataReader telah menjadi isu yang dipertikaikan. Walaupun sambungan biasanya ditutup, keperluan untuk mengendalikan pembaca secara manual masih tidak pasti. Artikel ini meneroka implikasi prestasi mengabaikan pelupusan SqlDataReader dan menyediakan strategi pengendalian yang cekap.
Elakkan amalan berikut yang mengabaikan penutupan dan pelupusan pembaca:
using SqlConnection connection = new SqlConnection("connection string"); connection.Open(); using SqlCommand cmd = new SqlCommand("SELECT * FROM SomeTable", connection); using (SqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { Console.WriteLine("Write results."); } } // reader closure and disposal occur here connection.Close(); // connection closure
Pendekatan ini memerlukan pembangun untuk mengendalikan penutupan pembaca secara manual dan pelupusan.
Untuk memastikan pelupusan yang betul, gunakan pernyataan penggunaan:
using SqlConnection connection = new SqlConnection("connection string"); using SqlCommand cmd = new SqlCommand("SELECT * FROM SomeTable", connection); using (SqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { Console.WriteLine("Write results."); } } // reader closure and disposal occur here on line 9 connection.Close(); // connection closure
Pernyataan penggunaan memastikan pelupusan automatik pembaca apabila ia hilang di luar skop.
Mengabaikan pelupusan pembaca boleh menghalang prestasi. Pembaca yang tidak musnah memegang sumber yang diperuntukkan sehingga pengumpulan sampah, yang berpotensi membawa kepada:
Manual penutupan dan pelupusan SqlDataReader adalah penting untuk prestasi optimum dan pengurusan sumber. Menggunakan pernyataan menggunakan menyediakan penyelesaian yang cekap dengan memastikan pelupusan automatik dan mencegah kebocoran sumber.
Atas ialah kandungan terperinci Mengapa Pelupusan `SqlDataReader` yang Betul Penting untuk Prestasi Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!