문제

내 .net C# 애플리케이션에서 데이터 캐싱을 사용하고 싶습니다.지금까지 데이터 캐싱을 추가하고 특정 테이블에 SQL 캐시 종속성을 추가했습니다.하지만 그것만으로는 충분하지 않습니다.이러한 테이블은 너무 자주 업데이트되지만 캐시된 많은 개체와 관련이 없습니다.이렇게 하면 데이터 캐싱이 자주 플러시되므로 거의 쓸모가 없게 됩니다.각 개체의 특정 행에 SQL 캐시 종속성을 구현하고 싶습니다.어떻게 해야 합니까?

도움이 되었습니까?

해결책

SqlDependency의 작동 방식을 이해해야 합니다.너 결과 세트를 구독하고 해당 결과 세트가 변경되면 알림을 받습니다..모든 종류의 결과 집합을 구독할 수 있습니다. 즉, 다음을 준수하는 한 모든 종류의 쿼리를 의미합니다. 지원되는 문의 제한 사항.테이블이든 뷰이든 실제로는 아무런 차이가 없습니다.

따라서 기술적으로는 해당 행에 특정한 쿼리를 제출하여 특정 알림을 구독할 수 있습니다.하드 코딩된 WHERE 절을 사용합니다.전체 테이블을 검색하여 메모리에 캐싱하는 것이 아니라 행 단위로 필요한 데이터만 검색하고 캐시하도록 코드를 변경해야 합니다.도대체 테이블의 크기가 최소한 걱정된다면 그렇게 해야 합니다.전체 테이블 캐싱은 자주 변경되지 않거나 전혀 변경되지 않는 카탈로그 및 참조 데이터에 대해서만 수행되어야 합니다.

또한 데이터의 파티션을 검색하고 캐시하도록 선택할 수도 있습니다.개별 키 범위(예: 'A'와 'D', 'E'와 'H' 사이 등)를 구독하고 해당 특정 데이터 파티션에 대한 알림을 받습니다.

당신이 원한다면 SqlDependency 작동 방식 이해 내 블로그에는 다음과 같은 내용을 다루는 기사가 있습니다. SqlDependency의 일반적인 프로그래밍 함정 그리고 SqlDependency의 배포 문제.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top