Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 26469|Atsakyti: 3

[Šaltinis] EF atsargiai vertina atsitiktinius duomenis

[Kopijuoti nuorodą]
Paskelbta 2019-04-25 17:01:42 | | | |
Šiandien serveris patyrė CC ataką, dėl kurios IIS svetainė užstrigo, o paleidus iš naujo svetainė vėl buvo pakabinta, patikrinkite svetainės klaidų žurnalą taip:

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


Dėl daugybės užklausos skirtojo laiko išimčių svetainė užstringa, o užklausos skirtojo laiko SQL sakiniai gaunami iš atsitiktinių duomenų paėmimo metodo, kodas yra toks:

Kodas apytiksliai reiškia: 10 duomenų vienetų atsitiktinai atrenkami iš duomenų bazės, jei jie nedubliuoja dabartinio ID.

Kas atrodo kaip paprastas reikalavimas sukėlė serverio pakabinti! Aukščiau pateikto kodo sugeneruotas SQL sakinys yra toks:

Įgyvendinimo planas yra toks:



Jei duomenų bazėje yra 1 milijonas duomenų, ar iš pradžių nereikėtų 999 999 duomenų, o tada paimti 10 duomenų vienetų iš tų 999 999 vienetų duomenų?

Paklauskite didelio vaikino iš DBA grupės ir gaukite atsakymą: "taipO Dieve, kad turi būti lėtas, ir jums reikia skambinti šį sql pareiškimą daug kartų.



Iš pradžių maniau, kad tai EF problema,Tiesą sakant, jei rašote tiesiogiai sql, nėra gero sprendimo

Jei taip, prašau pamokyti mane!




Ankstesnis:Atvirojo kodo projektas "HtmlAgilityPack" įdiegia C# žiniatinklio tikrintuvą
Kitą:2019 m. HCIA mokomieji vaizdo įrašai
Paskelbta 2019-04-25 17:07:00 |
Sužinojau
Paskelbta 2019-04-26 09:20:13 |
Programoje yra dešimt atsitiktinių skaičių ir tada sql šiame skaičiuje yra tobulas
Paskelbta 2019-04-26 13:08:53 |
Išmokau ~~~~~~~~~~~~~~~~
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com