Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 26469|Svar: 3

[Kilde] EF er forsigtig med tilfældige data

[Kopier link]
Opslået på 25/04/2019 17.01.42 | | | |
I dag blev serveren udsat for et CC-angreb, hvilket fik hjemmesiden på IIS til at hænge, og hjemmesiden blev låst igen efter genstart, tjek hjemmesidens fejllog som følger:

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


Et stort antal forespørgsels-timeout-undtagelser får hjemmesiden til at hænge, og forespørgselstimeout-SQL-sætningerne kommer alle fra en metode, hvor tilfældige data er samlet; koden er som følger:

Koden betyder cirka: 10 datastykker udvælges tilfældigt fra databasen, så længe de ikke duplikerer det aktuelle ID.

Det, der virker som et simpelt krav, har fået serveren til at hænge på! SQL-sætningen, der genereres af ovenstående kode, er som følger:

Implementeringsplanen er som følger:



Hvis databasen har 1 million data, ville den så ikke først tage 999.999 data, og derefter tage 10 datastykker fra disse 999.999 data?

Spørg den store fyr i DBA-gruppen og få svaret: "JaÅh Gud, det må være langsomt, og du skal kalde denne SQL-sætning mange gange.



Først troede jeg, det var et EF-problem,Faktisk, hvis du skriver direkte i SQL, findes der ingen god løsning

Hvis ja, så lær mig det venligst!




Tidligere:Open source-projektet HtmlAgilityPack implementerer C# webcrawleren
Næste:2019 HCIA læringsvideoer
Opslået på 25/04/2019 17.07.00 |
klog
Opslået på 26/04/2019 09.20.13 |
I programmet er der ti tilfældige tal, og så er SQL i dette tal perfekt
Opslået på 26/04/2019 13.08.53 |
Jeg lærte ~~~~~~~~~~~~~~~~
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com