비고
DBCC PINTABLE은 필요할 때마다 테이블을 메모리로 읽어들이는 대신, 일반 Transact-SQL 문에 의해 테이블의 페이지가 버퍼 캐시에 저장되면 고정된 페이지로 표시합니다. SQL Server는 새 페이지를 읽어들일 공간이 필요하더라도 고정된 페이지를 플러시하지 않으며, 페이지의 업데이트 사항을 계속 기록하고 필요하면 업데이트된 페이지를 디스크에 다시 씁니다. 그러나 SQL Server는 DBCC UNPINTABLE 문으로 테이블이 고정 해제될 때까지 버퍼 캐시에서 사용 가능한 페이지의 복사본을 보관합니다.
DBCC PINTABLE은 자주 참조되는 작은 테이블을 메모리에 저장할 때 적합합니다. 이 방법을 사용하면 작은 테이블의 페이지를 메모리에 한 번 읽어들인 후 향후 데이터를 참조할 때는 디스크에서 읽어올 필요가 없습니다.
주의 DBCC PINTABLE은 성능을 향상시킬 수 있지만 주의해서 사용해야 합니다. 커다란 테이블을 고정할 경우 많은 용량의 버퍼 캐시를 사용하므로 다른 테이블에서 사용할 캐시가 부족하게 됩니다. 버퍼 캐시보다 용량이 큰 테이블을 고정하면 전체 버퍼 캐시를 채울 수도 있습니다. 이런 경우 sysadmin 고정 서버 역할의 구성원이 SQL Server를 종료했다 다시 시작한 다음, 테이블을 고정 해제해야 합니다. 너무 많은 테이블을 고정해도 이와 같은 문제가 발생할 수 있습니다.
Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.