|
|
게시됨어제 20:48
|
|
|

요구사항: 일부 데이터는 기사 내용, 페이지 조회수, 댓글 등 더티 리드를 허용하며, 이는 금융 데이터만큼 엄격하지 않습니다. 쿼리 성능 향상을 위해 ReadUncommitted트랜잭션을 사용할 수 있지만, SqlTransaction과 TransactionScope는 아직 수정되지 않은 누수 격리 수준의 버그가 있으니 WITH(NOLOCK) 솔루션 사용을 고려해 보세요.
복습:
SqlTransaction과 TransactionScope 누수 격리 수준 (이 버그는 8년 동안 존재했지만 아직 수정되지 않았습니다!) 많은 분들이 영향을 받을 수 있지만, 인지하지 못할 수도 있다고 생각합니다:하이퍼링크 로그인이 보입니다.
이 문서는 SQL 문구를 분석하고 WITH(NOLOCK)을 추가하기 위해 SqlScriptDOM을 참조해야 합니다. 오픈 소스 프로젝트를 참고하세요:하이퍼링크 로그인이 보입니다.
누겟의 인용문은 다음과 같습니다:
새로운 AllowDirtyReadAttribute.cs 기능을 생성하세요, 코드는 다음과 같습니다:
DbCommandInterceptor의 특정 메서드를 덮어쓰기 위해 새로운 WithNoLockInterceptor를 생성합니다. 코드는 다음과 같습니다:
EF 코어에 다음과 같은 구성으로 주입하세요:
컨트롤러 메서드 위에 추가하려면 사용하세요[더럽게 읽어도 돼]깡통.
원시 SQL 문장:
[o]를 선택하세요. [Id], [o]. [고객명], [o0]. [Id], [o0]. [OrderId], [o0]. [제품] [명령서] 아스로(o) 왼쪽 외곽 조인트 [오더라인] AS [o0] [o]에 있습니다. [Id] = [o0]. [OrderId] 여기서 [o]. [id] = 1 순서는 [O]입니다. [id]; NOLOCK을 추가한 후 생성된 문장:
[o]를 선택하세요. [Id], [o]. [고객명], [o0]. [Id], [o0]. [OrderId], [o0]. [제품] [명령서] [o] 위드 (노록) 왼쪽 외곽 조인트 [오더라인] [o0] (노록) [o]에 있습니다. [Id] = [o0]. [OrderId] 여기서 [o]. [id] = 1 순서는 [O]입니다. [id]; |
이전의:(MSSQL) SQL 서버 전체 텍스트 검색, 전체 텍스트 인덱스
|