반응형
반응형

현재 데이터베이스와 연관된 파일의 물리적 이름과 특징을 반환합니다. 파일 이름을 지정하지 않으면, 데이터베이스내의 모든 파일에 대한 정보를 확인할 있습니다.

 

[구문] sp_helpfile [ [ @filename = ] 'name' ] 

 

데이터베이스 파일 정보 확인하기

USE Sample;

GO

EXEC sp_helpfile;

GO

SELECT * FROM Sample.sys.database_files;

GO

 

크기가 큰 인덱스를 삭제하거나 다시 작성할 때 또는 큰 테이블을 삭제하거나 잘라낼 때 SQL Server 2005 데이터베이스 엔진은 트랜잭션이 커밋될 때까지 실제 페이지 할당 취소와 관련 잠금을 지연시킵니다. 이러한 구현은 다중 사용자 환경에서 자동 커밋 트랜잭션과 명시적 트랜잭션을 모두 지원하며 익스텐트를 129개 넘게 사용하는 큰 테이블이나 인덱스에 적용됩니다. 데이터베이스 엔진은 프로세스를 논리적 단계와 물리적 단계의 두 단계로 나눠 큰 개체를 삭제하는 데 필요한 할당 잠금을 피합니다.

 

- 논리적 단계 : 테이블이나 인덱스에 사용되는 기존 할당 단위가 할당 취소로 표시되고 트랜잭션이 커밋될 때까지 잠깁니다. 클러스터형 인덱스가 삭제되면 데이터 행이 복사되어 다시 작성된 클러스터형 인덱스나 힙을 저장하기 위해 생성된 새 할당 단위로 이동됩니다. 또한 인덱스 다시 작성의 경우 데이터 행이 정렬됩니다. 롤백이 있으면 이 논리 단계만 롤백해야 합니다.


 

- 물리적 단계 : 트랜잭션 커밋 후 발생합니다. 할당 취소로 표시된 할당 단위가 일괄 작업을 통해 물리적으로 삭제됩니다. 이러한 삭제 작업은 백그라운드에서 발생하는 짧은 트랜잭션 내에서 처리되며 많은 잠금을 필요로 하지 않습니다. 물리적 단계는 트랜잭션 커밋 후 발생하므로 테이블이나 인덱스의 저장 공간이 여전히 사용될 수 없는 것으로 나타날 수 있습니다. 물리적 단계가 완료되기 전에 데이터베이스가 증가하는 데 이 공간이 필요하면 데이터베이스 엔진이 할당 취소로 표시된 할당 단위로부터 공간을 복구하려고 합니다. 이러한 할당 단위에서 현재 사용하고 있는 공간을 찾으려면 sys.allocation_units 카탈로그 뷰를 사용하면 됩니다.

 

지연된 삭제 작업은 할당된 공간을 바로 해제하지 않기 때문에 데이터베이스 엔진에 추가 오버헤드 비용을 초래합니다. 따라서 128개 이하의 익스텐트를 사용하는 테이블과 인덱스는 SQL Server 2000 과 동일한 방식으로 삭제되고 잘리고 다시 작성됩니다. 즉, 논리적 단계와 물리적 단계가 모두 트랜잭션 커밋 전에 발생합니다.

지연된 삭제 작업 방식은 할당된 공간을 즉시 해제하지 않기 때문에 대형 인덱스를 삭제하거나 잘라낸 직후 sys.database_files에서 반환하는 값은 실제 사용할 수 있는 디스크 공간과 다를 수 있습니다.

반응형

+ Recent posts

반응형