Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 26469|Ответ: 3

[Источник] EF осторожно относится к случайным данным

[Скопировать ссылку]
Опубликовано 25.04.2019 17:01:42 | | | |
Сегодня сервер подвергся атаке CC, из-за чего сайт на IIS завис, и после перезагрузки он снова завис, проверьте журнал ошибок сайта следующим образом:

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


Большое количество исключений с тайм-аутом запросов приводит к зависанию сайта, а все SQL-операторы тайм-аута запроса создаются методом получения случайных данных, код выглядит следующим образом:

Код примерно означает: 10 элементов данных выбираются случайным образом из базы данных, если они не дублируют текущий идентификатор.

То, что казалось простым требованием, заставило сервер положить трубку! Оператор SQL, сгенерированный вышеуказанным кодом, выглядит следующим образом:

План реализации следующий:



Если в базе данных 1 миллион единиц данных, разве она не возьмёт сначала 999 999 единиц, а затем 10 данных из этих 999 999 данных?

Спросите большого парня из группы DBA и получите ответ: "ДаО боже, это, наверное, медленно, и вам нужно много раз повторять это sql-утверждение.



Сначала я думал, что это проблема с EF,На самом деле, если вы пишете напрямую в SQL, хорошего решения нет

Если да, пожалуйста, научите меня!




Предыдущий:Открытый проект HtmlAgilityPack реализует веб-краулер на C#
Следующий:Обучающие видео HCIA 2019 года
Опубликовано 25.04.2019 17:07:00 |
учёный
Опубликовано 26.04.2019 9:20:13 |
В программе есть десять случайных чисел, и тогда sql в этом числе является совершенным
Опубликовано 26.04.2019 13:08:53 |
Я узнал ~~~~~~~~~~~~~~~~
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com