집 >데이터 베이스 >MySQL 튜토리얼 >EF 6 가로채기가 매개변수 스니핑 성능 문제를 어떻게 완화할 수 있습니까?
EF 6의 매개변수 스니핑 재검토
동적 쿼리는 유연성을 제공하지만 크기가 EF 6에서 성능 문제로 이어질 수 있습니다. 매개변수 스니핑은 초기 실행 매개변수를 기반으로 쿼리 계획을 캐시하므로 매개변수가
EF 6으로 매개변수 스니핑 문제 해결
매개변수 스니핑을 극복하려면 각 실행 시 쿼리를 다시 컴파일하도록 데이터베이스 엔진에 알리는 것이 중요합니다. 데이터베이스 통계를 업데이트하는 것은 표준 관행이지만 문제를 완전히 해결하지 못할 수도 있습니다.
EF 6에 "OPTION RECOMPILE" 통합
다행히도 EF 6은 조작할 수 있는 메커니즘을 제공합니다. 실행 전 SQL 명령. 이러한 기술 중 하나는 가로채기 기능을 사용하는 것입니다.
가로채기를 통한 구현
다음 코드 샘플은 OptionRecompileHintDbCommandInterceptor 클래스의 구현을 보여줍니다.
public class OptionRecompileHintDbCommandInterceptor : IDbCommandInterceptor { ... private static void addQueryHint(IDbCommand command) { ... } }
이 인터셉터는 "select"로 시작하는 SQL 문에 OPTION RECOMPILE 힌트를 추가하고 아직 힌트가 포함되어 있지 않습니다.
사용
이 인터셉터를 활용하려면 애플리케이션 시작 시 다음 코드를 추가하기만 하면 됩니다.
DbInterception.Add(new OptionRecompileHintDbCommandInterceptor());
이 접근 방식을 활용하면 데이터베이스 엔진이 각 실행 시 쿼리를 다시 컴파일하도록 하여 매개변수 스니핑을 완화하고 쿼리를 개선할 수 있습니다. 공연.
위 내용은 EF 6 가로채기가 매개변수 스니핑 성능 문제를 어떻게 완화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!