Ma a szerver CC támadás érte, ami miatt az IIS-en lévő weboldal leakadt, és a weboldal újraindítás után ismét leállt, nézd meg a weboldal hibanaplóját a következőkben:
System.Data.Entity.Core.EntityCommandExecutionException: 执行命令定义时出错。有关详细信息,请参阅内部异常。 ---> System.Data.SqlClient.SqlException: 执行超时已过期。完成操作之前已超时或服务器未响应。 ---> System.ComponentModel.Win32Exception: 等待的操作过时。
Számos lekérdezési időtúlzás miatt a weboldal lefagy, és a lekérdezési idő-out SQL utasítások mind véletlenszerű adatgyűjtési módszerből származnak, a kód a következő:
A kód nagyjából azt jelenti: 10 adatdarabot véletlenszerűen választanak ki az adatbázisból, amennyiben nem duplikálják a jelenlegi azonosítót.
Ami egyszerűnek tűnő követelménynek tűnik, miatt a szerver leteszi a telefont! A fenti kód által generált SQL utasítás a következő:
A megvalósítási terv a következő:
Ha az adatbázisban 1 millió adat van, nem lenne előbb 999 999 adatdarab, majd ebből 10 adatdarabot?
Kérdezd meg a DBA csoport nagy fickóját, és kapd meg a választ: "igenÚristen, ez biztosan lassú lehet, és ezt a sql állítást sokszor kell hívnod.
Eleinte azt hittem, ez EF probléma,Valójában, ha közvetlenül SQL-ben írsz, nincs jó megoldás。
Ha igen, kérlek, taníts meg!
|