Click or drag to resize

SQL 연동 캐시

SQL 쿼리 문장에 의존하는 캐시

SQL 쿼리 문장(SELECT)의 결과 값이 변하는 경우 캐시 데이터가 만료되도록 설정할 수 있습니다. 캐시 데이터를 조회할 때 마다 지정된 쿼리가 실행되고 그 결과 값이 변경될 경우 이 규칙에 의존하고 있는 캐시 데이터는 만료되게 됩니다.

이와 같은 캐시 의존성은 CacheDependency 오브젝트의 AddSql 메서드를 호출해 정의할 수 있습니다. 의존성 정의 후 Insert 메서드를 호출해 글로벌 캐시 매니저에 등록할 수 있습니다.

아래 코드는 Product 테이블에 새 레코드가 추가되어 pid(incremental primary key) 값이 변경될 경우 캐시가 만료되도록 설정합니다.

ASP
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 쿼리가 실행되므로 캐시의 기본 목적인 성능 향상에 반하지 않도록 빠르게 실행되도록 튜닝 되어야 합니다.