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

Görünüm: 26469|Yanıt: 3

[Kaynak] EF rastgele verilere karşı temkinli

[Bağlantıyı kopyala]
Yayınlandı 25.04.2019 17:01:42 | | | |
Bugün, sunucu bir CC saldırısına maruz kaldı ve IIS'teki web sitesi takıldı, yeniden başlattıktan sonra web sitesi tekrar kapandı, web sitesi hata kaydını aşağıdaki gibi kontrol edin:

System.Data.Entity.Core.EntityCommandExecutionException: 执行命令定义时出错。有关详细信息,请参阅内部异常。 ---> System.Data.SqlClient.SqlException: 执行超时已过期。完成操作之前已超时或服务器未响应。  ---> System.ComponentModel.Win32Exception: 等待的操作过时。


Çok sayıda sorgulu zaman aşımı istisnası web sitesinin takılmasına neden olur ve sorgu zaman aşımına bağlı SQL ifadeleri rastgele veri alma yönteminden gelir, kod şöyledir:

Kod kabaca şu anlamda ifade eder: veritabanından rastgele seçilen 10 veri parçası, yeter ki mevcut ID'yi çoğaltmasınlar.

Basit bir gereklilik gibi görünen şey, sunucunun telefonu kapatmasına neden oldu! Yukarıdaki kod tarafından oluşturulan SQL ifadesi şöyledir:

Uygulama planı şöyledir:



Veritabanında 1 milyon veri varsa, önce 999.999 veri parçası alınmaz, sonra bu 999.999 veriden 10 parça veri alınmaz mı?

DBA grubunun büyük adamına sorun ve cevabı alın: "EvetAman Tanrım, bu yavaş olmalı ve bu sql ifadesini defalarca çağırman gerekiyor.



İlk başta bunun EF sorunu olduğunu düşündüm,Aslında, doğrudan SQL ile yazarsanız, iyi bir çözüm yoktur

Eğer öyleyse, lütfen bana öğret!




Önceki:Açık kaynak projesi HtmlAgilityPack, C# web tarayıcısını uygular
Önümüzdeki:2019 HCIA Öğrenme Videoları
Yayınlandı 25.04.2019 17:07:00 |
Öğren
Yayınlandı 26.04.2019 09:20:13 |
Programda on rastgele sayı vardır ve bu sayının sql noktası mükemmeldir
Yayınlandı 26.04.2019 13:08:53 |
Öğrendim ~~~~~~~~~~~~~~~~
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