Ada skenario di mana SET NOCOUNT ON adalah wajib. Saat merancang tingkat menengah berkinerja tinggi berdasarkan pemrosesan asinkron yang memanfaatkan kumpulan utas melalui metode BeginExecuteXXX SqlClient, ada masalah yang sangat serius dengan jumlah baris. Metode BeginExecute selesai segera setelah metode pertama paket respon dikembalikan oleh server. Tetapi ketika EndExecuteXXX dipanggil, ini selesai pada permintaan non-kueri saat panggilan selesai. Setiap respons jumlah baris adalah respons. Saat memproses prosedur yang bahkan cukup rumit, jumlah baris pertama dapat kembali dalam 5-10 md, sedangkan panggilan selesai dalam 300-500 md. Alih-alih meminta permintaan asinkron yang dikirim dipanggil kembali setelah 500 md, permintaan tersebut memanggil kembali setelah 5 md dan kemudian panggilan balik memblokir di EndExecuteXXX selama 495 md. Hasilnya adalah panggilan asinkron selesai sebelum waktunya dan memblokir utas dari kumpulan utas di panggilan EndExecuteNonQuery. Hal ini menyebabkan kelaparan ThreadPool. Saya telah melihat sistem kinerja tinggi meningkatkan throughput dari ratusan panggilan per detik menjadi ribuan panggilan per detik hanya dengan menambahkan SET NOCOUNT ON, pada skenario tertentu.
Mengingat bahwa untuk pemrosesan tingkat menengah tingkat tinggi/throughput tinggi, panggilan asinkron adalah satu-satunya cara, NOCOUNT merupakan persyaratan wajib.