SQL Server에 대한 기술 문서를 보다 보면 캐시라는 용어도 자주 나오고 풀이라는 용어도 자주 접하게 됩니다. 특히 성능이나 아키텍처에 관한 문서에 이런 용어들이 자주 나오는데, 실제로 이런 용어들을 사용하면서 확실하게 이 두 가지가 어떻게 다른지 잘 모르고 사용하는 경우가 많습니다. 저도 잘 모릅니다만, 자료에 나와 있는 캐시와 풀의 비교 설명을 옮겨 봅니다. 저는 다섯번째 얘기가 가장 마음에 와 닿네요. ^ ^
1. 캐시 (Cache)
- 이기종 데이터를 캐싱하는 메커니즘이며, 각각의 엔트리에 대하여 정해진 비용이 있음
- 대개의 경우 엔트리별로 상태가 관리됨
- 엔트리에 대해서 lifetime 제어가 구현되어 있음
- LRU 정책을 제공함
- 캐싱된 데이터의 유형에 따라 다르지만, 하나의 엔트리를 동시에 다중의 클라이언트들이 사용 가능함
- 예: 프로시저 캐시, 데이터 캐시 (버퍼)
2. 풀 (Pool)
- 동종 데이터를 캐싱하는 메커니즘
- 상태 정보를 가지지 않음
- lifetime에 대한 제한적인 제어
- 어떤 시점에는 오직 한 클라이언트만이 사용 가능 : 하나의 엔트리가 풀에서 선택되어 사용되면 그 엔트리는 풀에서 제거되며, 그 엔트리가 다시 풀로 되돌아올 때까지는 풀이 그 엔트리에 대한 제어권을 가지지 못하는 구조임.
- 예: 네트쿼크 버퍼 풀
'연구개발 > SQL2005' 카테고리의 다른 글
[SQL 2005 GUIDE] 로컬 서버 이름 변경하기 (0) | 2009.07.24 |
---|---|
[SQL 2005 GUIDE] DBCC SHOWCONTIG 에 대한 질문 (0) | 2009.07.24 |
[SQL 2005 GUIDE] SQL Server 2005 memory - 1탄 (0) | 2009.07.24 |
[SQL 2005 GUIDE] 큰 값 데이터 형식과 문자열 함수 (0) | 2009.07.24 |
[SQL 2005 GUIDE] varchar(max) 열이 행 내에 저장되는지 확인하는 스크립트 (0) | 2009.07.24 |