Rumah > pangkalan data > tutorial mysql > Mengapa Pertanyaan SQL saya Pantas dalam SSMS tetapi Lambat dalam Aplikasi C# saya?

Mengapa Pertanyaan SQL saya Pantas dalam SSMS tetapi Lambat dalam Aplikasi C# saya?

Susan Sarandon
Lepaskan: 2025-01-04 07:04:34
asal
148 orang telah melayarinya

Why is my SQL Query Fast in SSMS but Slow in my C# Application?

Kod Berjalan Lambat dalam Aplikasi tetapi Pantas dalam SSMS

Masalah:

Pertanyaan yang mengembalikan data dengan cepat dalam SQL Server Management Studio (SSMS) mengambil banyak masa apabila dijalankan daripada C# aplikasi.

Kod:

Kod C# menggunakan SqlDataAdapter dan kaedah Isiannya untuk melaksanakan pertanyaan.

using (var conn = new SqlConnection(...))
using (var ada = new SqlDataAdapter(...))
{
    ada.Fill(Logs);
}
Salin selepas log masuk

Pertanyaan SSMS ialah sama dengan yang dilaksanakan dalam aplikasi.

Punca:

Percanggahan dalam masa pelaksanaan disebabkan oleh perbezaan dalam cara parameter dikendalikan dalam aplikasi dan SSMS. Dalam aplikasi, kaedah AddWithValue digunakan untuk menambah parameter jenis NVARCHAR, manakala dalam SSMS, parameter diisytiharkan sebagai VARCHAR.

Penyelesaian:

Untuk menyelesaikan isu ini, sama ada:

  1. Gunakan pembina yang menerima jenis apabila menambah parameter dalam kod aplikasi:
ada.SelectCommand.Parameters.Add("@clientID", SqlDbType.Varchar, 200);
Salin selepas log masuk
  1. Hantar parameter dalam teks SQL:
where client_id = cast(@clientID as varchar(200))
Salin selepas log masuk

Penyelesaian pertama diutamakan kerana ia juga menangani cache yang berpotensi isu pencemaran.

Tambahan Pertimbangan:

  • Pastikan kedua-dua aplikasi dan SSMS menggunakan komputer dan log masuk yang sama.
  • Jadual yang dirujuk dalam pertanyaan mempunyai indeks yang sesuai dan berfungsi dengan baik dalam SSMS .
  • Pertimbangkan kesan caching parameter pada prestasi pertanyaan.

Atas ialah kandungan terperinci Mengapa Pertanyaan SQL saya Pantas dalam SSMS tetapi Lambat dalam Aplikasi C# saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan