Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 22757|Jawab: 0

[Sumber] Memecahkan masalah bahwa prosedur tersimpan dijalankan dengan cepat, tetapi panggilan program lambat

[Salin tautan]
Diposting pada 21/05/2018 13.55.48 | | |
Dalam dua hari terakhir, saya telah mengalami masalah yang cukup membuat frustrasi, prosedur tersimpan sekitar 120 baris dijalankan di penganalisis kueri SQL Server 2012,
Kecepatannya sangat ideal, dan sekitar 500 catatan data dapat disaring dan ditangkap dalam waktu kurang dari 1 detik.
Namun, ketika dipanggil dalam kode program C#, batas waktu koneksi diminta. Atur CommandTimeout ke 300, dan akan memakan waktu sekitar 3 menit untuk ditampilkan.
Saya memeriksa kode beberapa kali dan tidak menemukan kesalahan. Masalahnya tetap ada.

Analisis penyebab:
1. Karena kecepatan eksekusi di query analyzer cepat dan jumlah datanya tidak besar.
2. Hanya panggilan dalam program yang lambat.
3. Atur parameter CommandTimeout, dan hasilnya dapat ditampilkan, tetapi akan memakan waktu lama.

Singkatnya, awalnya disimpulkan bahwa masalahnya terletak pada kode C#. Tapi tidak ada keuntungan setelah pemeriksaan.

Periksa informasi ini di Baidu.
Akhirnya menemukan posting informasi serupa di forum CSDN. Salah satu netizen mengatakan dalam balasan, "Ada kemungkinan rencana implementasi telah kedaluwarsa",
Itu benar-benar membangunkan saya dalam mimpi saya.

Lakukan segera pada penganalisis kueri:

Menguji program lagi, kali ini akhirnya berhasil. Kecepatannya sangat memuaskan.

Analisis penyebab:
Karena prosedur tersimpan telah dikompilasi sebelumnya, rencana eksekusi dihasilkan pada eksekusi pertama, dan rencana eksekusi ini digunakan pada eksekusi berikutnya (kecuali prosedur tersimpan ditentukan untuk dikompilasi ulang), daripada menghasilkan rencana eksekusi setiap kali dieksekusi.
Ketika struktur objek yang terlibat dalam prosedur tersimpan disesuaikan, atau data terkait berubah secara signifikan, yang dapat menyebabkan rencana asli tidak sesuai untuk status quo saat ini (kedaluwarsa rencana eksekusi), prosedur tersimpan harus dikompilasi ulang.

Terakhir, lampirkan kode untuk prosedur yang disimpan:







Mantan:Bagikan satu sumber kode halaman promosi APP, adaptif, sangat indah dan murah hati!
Depan:C# Kerangka Kerja Sumber Terbuka (Cetak Ulang)
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com