728x90

DBCC PINTABLE

Microsoft® SQL Server™가 테이블의 페이지를 메모리에서 플러시하지 않고 고정될 테이블을 표시합니다.

구문

DBCC PINTABLE ( database_id , table_id )

인수

database_id

고정될 테이블의 데이터베이스 ID 번호입니다. 데이터베이스 ID를 확인하려면 DB_ID 함수를 사용합니다.

table_id

고정될 테이블의 개체 ID 번호입니다. 테이블 ID를 확인하려면 OBJECT_ID 함수를 사용합니다.

비고

DBCC PINTABLE은 필요할 때마다 테이블을 메모리로 읽어들이는 대신, 일반 Transact-SQL 문에 의해 테이블의 페이지가 버퍼 캐시에 저장되면 고정된 페이지로 표시합니다. SQL Server는 새 페이지를 읽어들일 공간이 필요하더라도 고정된 페이지를 플러시하지 않으며, 페이지의 업데이트 사항을 계속 기록하고 필요하면 업데이트된 페이지를 디스크에 다시 씁니다. 그러나 SQL Server는 DBCC UNPINTABLE 문으로 테이블이 고정 해제될 때까지 버퍼 캐시에서 사용 가능한 페이지의 복사본을 보관합니다.

DBCC PINTABLE은 자주 참조되는 작은 테이블을 메모리에 저장할 때 적합합니다. 이 방법을 사용하면 작은 테이블의 페이지를 메모리에 한 번 읽어들인 후 향후 데이터를 참조할 때는 디스크에서 읽어올 필요가 없습니다.

주의   DBCC PINTABLE은 성능을 향상시킬 수 있지만 주의해서 사용해야 합니다. 커다란 테이블을 고정할 경우 많은 용량의 버퍼 캐시를 사용하므로 다른 테이블에서 사용할 캐시가 부족하게 됩니다. 버퍼 캐시보다 용량이 큰 테이블을 고정하면 전체 버퍼 캐시를 채울 수도 있습니다. 이런 경우 sysadmin 고정 서버 역할의 구성원이 SQL Server를 종료했다 다시 시작한 다음, 테이블을 고정 해제해야 합니다. 너무 많은 테이블을 고정해도 이와 같은 문제가 발생할 수 있습니다.

결과 집합

결과 집합은 다음과 같습니다.

경고: 고정하는 테이블은 주의해서 다루어야 합니다. 고정된 테이블이 사용 가능한 데이터
캐시보다 크거나 커지면 서버를 다시 시작해야 테이블의 고정이 해제됩니다.
DBCC 실행이 완료되었습니다.
DBCC
에서 오류 메시지를 출력하면 시스템 관리자에게 문의하십시오.
사용 권한

DBCC PINTABLE 권한은 sysadmin 고정 서버 역할의 구성원에게 기본적으로 부여되며, 양도할 수 없습니다.

예제

다음은 pubs 데이터베이스에서 authors 테이블을 고정하는 예제입니다.

DECLARE @db_id int, @tbl_id int USE pubs SET @db_id = DB_ID('pubs') 
SET @tbl_id = OBJECT_ID('pubs..authors') DBCC PINTABLE (@db_id, @tbl_id)

관련 항목

DBCC

메모리 아키텍처

DBCC UNPINTABLE

sp_tableoption

©1988-2000 Microsoft Corporation. All Rights Reserved.

+ Recent posts