SQL 연동 캐시 |
SQL 쿼리 문장(SELECT)의 결과 값이 변하는 경우 캐시 데이터가 만료되도록 설정할 수 있습니다. 캐시 데이터를 조회할 때 마다 지정된 쿼리가 실행되고 그 결과 값이 변경될 경우 이 규칙에 의존하고 있는 캐시 데이터는 만료되게 됩니다.
이와 같은 캐시 의존성은 CacheDependency 오브젝트의 AddSql 메서드를 호출해 정의할 수 있습니다. 의존성 정의 후 Insert 메서드를 호출해 글로벌 캐시 매니저에 등록할 수 있습니다.
아래 코드는 Product 테이블에 새 레코드가 추가되어 pid(incremental primary key) 값이 변경될 경우 캐시가 만료되도록 설정합니다.
Dim cache, value, connStr, sql, dependency, filePath Set cache = Server.CreateObject("TABS.DataCache") value = cache("dbcache-key") If IsNull(value) Then value = "new cached value" Set dependency = Server.CreateObject("TABS.CacheDependency") sql = "SELECT TOP 1 pid from dbo.Product ORDER BY pid DESC" dependency.AddSql connStr, sql cache.Insert "dbcache-key", value, dependency, 0, 0 End If
SELECT 문장이 반환하는 첫 레코드의 첫 번째 필드 값을 비교해 캐시 만료 여부를 결정합니다. 캐시 데이터 조회 시 마다 지정된 SELECT 쿼리가 실행되므로 캐시의 기본 목적인 성능 향상에 반하지 않도록 빠르게 실행되도록 튜닝 되어야 합니다.