Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 22757|Yanıt: 0

[Kaynak] Depolanan prosedürlerin hızlı çalıştırılması, ancak program çağrılarının yavaş olması sorununu çözer

[Bağlantıyı kopyala]
Yayınlandı 21.05.2018 13:55:48 | | |
Son iki günde, oldukça sinir bozucu bir sorunla karşılaştım; SQL Server 2012'nin sorgu analizöründe yaklaşık 120 satırlık bir kayıtlı prosedür çalıştırılıyor,
Hız çok ideal ve yaklaşık 500 veri kaydı 1 saniyeden kısa sürede filtrelenip yakalanabilir.
Ancak, C# program kodunda çağrıldığında, bağlantı zaman aşımına bağlı olarak sorulur. CommandTimeout'u 300'e ayarsanız, görüntülenmesi yaklaşık 3 dakika sürer.
Kodu birkaç kez kontrol ettim ve hata bulamadım. Sorun hâlâ devam ediyor.

Neden analizi:
1. Çünkü sorgu analizöründe yürütme hızı hızlıdır ve veri miktarı büyük değildir.
2. Programda sadece arama yavaş olur.
3. CommandTimeout parametresini ayarlayın, sonuç görüntülenebilir ama bu uzun sürecektir.

Özetle, sorunun C# kodunda yattığı ön aşamada sona ermiştir. Ancak denetimden sonra hiçbir kazanç olmadı.

Baidu'daki bu bilgileri kontrol edin.
Sonunda CSDN forumunda benzer bir bilgi gönderisi buldum. İnternet kullanıcılarından biri yanıtta, "Uygulama planının süresi dolması mümkün" dedi.
Rüyamda gerçekten uyandırdım.

Hemen sorgu analizöründe gerçekleştirin:

Programı tekrar test ettim, bu sefer sonunda işe yaradı. Hız çok tatmin edici.

Neden analizi:
Depolanan prosedürler önceden derlenmiş olduğundan, bir yürütme planı ilk yürütmede oluşturulur ve bu yürütme planı, her yürütüldüğünde bir yürütme planı oluşturmak yerine sonraki yürütmelerde (saklanan prosedürün yeniden derlenmesi belirtilmedikçe) kullanılır.
Depolanan prosedürde yer alan nesne yapısı ayarlandığında veya ilgili veriler önemli ölçüde değiştiğinde, bu da orijinal planın mevcut duruma (yürütme planının süresi dağı) uygun olmamasına neden olabilir, depolanan prosedür yeniden derlenmelidir.

Son olarak, depolanan prosedürün kodu eklensin:







Önceki:Tek bir APP promosyon sayfası kod kaynağını paylaş, uyarlanabilir, çok güzel ve cömert!
Önümüzdeki:C# Açık Kaynak Çerçevesi (Yeniden Baskı)
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com