Async Rangka Kerja Entiti: Halangan Prestasi Yang Penting
Artikel ini memperincikan isu prestasi yang dihadapi semasa menggunakan kaedah tak segerak Entiti. Pengarang menemui peningkatan sepuluh kali ganda dalam masa pelaksanaan untuk pertanyaan tak segerak berbanding dengan pertanyaan segerak mereka.
Masalahnya: Pertanyaan segerak diselesaikan dalam beberapa saat, manakala setara tak segerak mereka mengambil masa sepuluh kali lebih lama.
Menyahpepijat Isu: SQL Server Profiler mengesahkan pertanyaan SQL yang sama untuk kedua-dua panggilan segerak dan tak segerak. Siasatan lanjut mendedahkan puncanya: operasi tak segerak itu menghasilkan lebih dua juta tugas dan menanggung overhed yang ketara.
Punca Punca: Masalah berpunca daripada pepijat dalam pelaksanaan tak segerak Entiti Framework 6. Apabila berurusan dengan jadual yang mengandungi lajur binari yang besar, rangka kerja harus menggunakan bendera CommandBehavior.SequentialAccess
secara automatik dalam panggilan tak segerak. Pengoptimuman penting ini tiada.
Penyelesaian: Penulis mencadangkan untuk memintas kaedah tak segerak terbina dalam Rangka Kerja Entiti. Penyelesaian menggunakan TaskCompletionSource
membolehkan pelaksanaan tak segerak manual, memastikan CommandBehavior.SequentialAccess
digunakan dengan betul untuk jadual dengan data binari yang besar.
Pemerhatian Utama:
CommandBehavior.Default
.Atas ialah kandungan terperinci Mengapakah Rangka Kerja Entiti Saya Operasi Async 10x Lebih Lambat Daripada Rakan Sejawat Segeraknya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!