이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 26469|회답: 3

[출처] EF는 무작위 데이터에 대해 신중합니다

[링크 복사]
게시됨 2019. 4. 25. 오후 5:01:42 | | | |
오늘 서버가 CC 공격을 받아 IIS에서 웹사이트가 정지되었고, 재시작 후 다시 중단되었습니다. 웹사이트 오류 로그를 다음과 같이 확인하세요:

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


많은 쿼리 타임아웃 예외가 웹사이트를 멈추게 하며, 쿼리 타임아웃 SQL 문은 모두 무작위 데이터를 수집하는 메서드에서 옵니다. 코드는 다음과 같습니다:

이 코드는 대략적으로 다음과 같습니다: 현재 ID와 중복되지 않는 한 데이터베이스에서 무작위로 10개의 데이터를 선택한다는 뜻입니다.

간단한 요구사항처럼 보이는 것이 서버가 끊기게 만들었습니다! 위 코드에서 생성된 SQL 문은 다음과 같습니다:

실행 계획은 다음과 같습니다:



만약 데이터베이스에 100만 개의 데이터가 있다면, 먼저 999,999개의 데이터를 가져가고, 그 중 10개의 데이터를 가져가는 것이 아닐까요?

DBA 그룹의 큰 책임자에게 물어보면 답을 얻어보세요: "세상에, 이거 느리겠네요. 그리고 이 SQL 문장을 여러 번 호출해야 하네요.



처음에는 EF 문제인 줄 알았어요,사실, SQL로 직접 작성하면 좋은 해결책이 없습니다

그렇다면 제발 가르쳐 주세요!




이전의:오픈소스 프로젝트인 HtmlAgilityPack은 C# 웹 크롤러를 구현합니다
다음:2019 HCIA 학습 동영상
게시됨 2019. 4. 25. 오후 5:07:00 |
박식한
게시됨 2019. 4. 26. 오전 9:20:13 |
프로그램에는 10개의 난수가 있고, 이 숫자의 SQL은 완비입니다
게시됨 2019. 4. 26. 오후 1:08:53 |
나는 ~~~~~~~~~~~~~~~~
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com