Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 26469|Resposta: 3

[Fonte] A EF é cautelosa com dados aleatórios

[Copiar link]
Publicado em 25/04/2019 17:01:42 | | | |
Hoje, o servidor sofreu um ataque CC, fazendo o site no IIS travar, e o site foi desligado novamente após reiniciar, verifique o registro de erros do site da seguinte forma:

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


Um grande número de exceções de tempo de espera de consulta faz o site travar, e as instruções SQL de tempo de consulta vêm todas de um método de captura aleatória, o código é o seguinte:

O código significa aproximadamente: 10 dados são selecionados aleatoriamente do banco de informações, desde que não dupliquem o ID atual.

O que parece ser um requisito simples fez o servidor desligar! A instrução SQL gerada pelo código acima é a seguinte:

O plano de implementação é o seguinte:



Se o banco de dados tem 1 milhão de dados, ele não precisaria de 999.999 dados primeiro, e depois pegaria 10 dados desses 999.999 dados?

Pergunte ao grande do grupo DBA e obtenha a resposta: "SimMeu Deus, isso deve ser lento, e você precisa chamar isso de instrução SQL várias vezes.



No começo achei que fosse um problema de EF,Na verdade, se você escrever diretamente em SQL, não há uma boa solução

Se sim, por favor, me ensine!




Anterior:O projeto open-source HtmlAgilityPack implementa o rastreador web C#
Próximo:Vídeos de Aprendizagem HCIA 2019
Publicado em 25/04/2019 17:07:00 |
douto
Publicado em 26/04/2019 09:20:13 |
No programa, existem dez números aleatórios e então sql nesse número é perfeito
Publicado em 26/04/2019 13:08:53 |
Aprendi ~~~~~~~~~~~~~~~~
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com