2012-07-11 2 views
0

ASP.NET C# 4에서 코딩 중입니다. 데이터베이스가 SQL Server 2012입니다.변경 내용 추적 - 가장 간단한 시나리오

2000 개의 행과 10 개의 열이있는 테이블이 있습니다. 이 테이블을 메모리에로드하고 테이블이 업데이트/삽입되면 DB에서 메모리 내 복사본을 새로 고칩니다.

SQL Server 변경 내용 추적을 조사한 결과, 필요한 기능을 수행하는 동안 변경 기능에서 코드를 선택해야한다는 것을 알았습니다. 간단한 시나리오에서 원하는 것보다 코딩이 더 많이 필요합니다. 내가 가진 것.

이 문제에 가장 적합한 (가장 간단한) 해결책은 무엇입니까? CacheDependency를 사용합니까?

+0

사용자 고유의 감사 테이블을 작성하여 트리거를 사용하여 삽입, 업데이트 및 삭제를 추적 할 수 있습니다. 그런 다음 일부 타임 스탬프에서 감사 테이블을 검색하여 업데이트가 감지되면 업데이트 된 레코드를 다시로드하기 만하면됩니다. – mellamokb

+0

내 희망은 이것이 기존의 프레임 워크에 간단히 꽂을 수있는 일반적인 시나리오, 바람직하게는 한 줄짜리 코드를 사용하는 것입니다. CacheDependency 마음에 온다,하지만 그게 밖에 밖에 있는지 모르겠다. – user1044169

답변

0

현재 비슷한 문제가 있습니다. 나는 50 개 이상의 열이있는 테이블을 반환하는 나머지 서비스를 구현 중이며 트래픽을 줄이기 위해 클라이언트에 데이터를 캐시하고 싶습니다.

내가이 구현에 대해 생각 해요 :

을 내 모든 테이블은 필드

ID AutoIncrement (primary key) 
Version RowVersion (a numeric value that will be incremented 
        every time the record is updated) 

내가 선택

select count(*), max(id), sum(version) from ... 

삭제를 사용하는 테이블의 "지문"을 계산해야 레코드는 첫 번째 값을 변경하고 두 번째 값을 삽입하고 세 번째 값을 업데이트합니다.

그래서 세 가지 값 중 하나가 변경되면 표를 다시로드해야합니다.