Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 26469|Răspunde: 3

[Sursă] EF este precaut cu datele aleatorii

[Copiază linkul]
Postat pe 25.04.2019 17:01:42 | | | |
Astăzi, serverul a suferit un atac CC, ceea ce a făcut ca site-ul de pe IIS să se blocheze, iar site-ul a fost blocat din nou după repornire, verificați jurnalul de erori al site-ului după cum urmează:

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


Un număr mare de excepții pentru timeout-ul interogării fac ca site-ul să se blocheze, iar instrucțiunile SQL pentru timeout-ul interogării provin toate dintr-o metodă de preluare aleatorie a datelor, codul fiind următorul:

Codul înseamnă aproximativ: 10 date sunt selectate aleatoriu din baza de date, atâta timp cât nu se duplică ID-ul curent.

Ceea ce pare o cerință simplă a făcut ca serverul să se închidă! Instrucțiunea SQL generată de codul de mai sus este următoarea:

Planul de implementare este următorul:



Dacă baza de date are 1 milion de date, nu ar avea nevoie mai întâi de 999.999 de date și apoi de 10 date din aceste 999.999 de date?

Întreabă-l pe cel mai mare din grupul dba și primește răspunsul: "DaDoamne, trebuie să fie lent, și trebuie să numești asta statement sql de multe ori.



La început am crezut că este o problemă de EF,De fapt, dacă scrii direct în sql, nu există o soluție bună

Dacă da, vă rog să mă învățați!




Precedent:Proiectul open-source HtmlAgilityPack implementează crawler-ul web C#
Următor:Videoclipuri de învățare HCIA 2019
Postat pe 25.04.2019 17:07:00 |
învățat
Postat pe 26.04.2019 09:20:13 |
În program, există zece numere aleatoare și apoi sql în acest număr este perfect
Postat pe 26.04.2019 13:08:53 |
Am învățat ~~~~~~~~~~~~~~~~
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com