DBCC SHRINKDATABASE ( 데이터베이스 축소 ) – 상세

//DBCC SHRINKDATABASE ( 데이터베이스 축소 ) – 상세

DBCC SHRINKDATABASE ( 데이터베이스 축소 ) – 상세

DBCC SHRINKDATABASE

예시)

DBCC SHRINKDATABASE ( database_name | database_id | 0 [ , target_percent ] [ , { NOTRUNCATE | TRUNCATEONLY } ] )

 

database_name | database_id | 0

축소할 데이터베이스의 이름 또는 ID입니다. 0은 현재 데이터베이스가 사용됨을 나타냅니다.

target_percent

축소 작업이 완료된 후 데이터베이스 파일에 남겨둘 여유 공간의 백분율입니다.

NOTRUNCATE

할당된 페이지를 파일 끝에서 파일 앞의 할당되지 않은 페이지로 이동합니다. 이 작업은 파일 내의 데이터를 압축합니다. target_percent는 선택 사항입니다. Azure Synapse Analytics에서는 이 옵션을 지원하지 않습니다.

파일 끝의 여유 공간이 운영 체제로 반환되지 않고, 파일의 실제 크기가 변경되지 않습니다. 따라서 NOTRUNCATE를 지정할 때 데이터베이스는 축소되지 않는 것으로 나타납니다.

NOTRUNCATE는 데이터 파일에만 적용됩니다. NOTRUNCATE는 로그 파일에 영향을 주지 않습니다.

=> 데이터의 정렬만 할 뿐 파일의 크기에 영향을 미치치 않는다.

TRUNCATEONLY

파일 끝의 모든 여유 공간을 운영 체제로 릴리스합니다. 파일 내의 어떤 페이지도 이동하지 않습니다. 데이터 파일은 마지막으로 할당된 익스텐트까지 축소됩니다. 로 지정된 경우 TRUNCATEONLY는 무시됩니다. Azure Synapse Analytics에서는 이 옵션을 지원하지 않습니다.

DBCC SHRINKDATABASE 옵션을 사용하는 TRUNCATEONLY는 데이터베이스 트랜잭션 로그 파일에만 영향을 줍니다. 데이터 파일을 잘라내려면 대신 DBCC SHRINKFILE을 사용하세요. 자세한 내용은 DBCC SHRINKFILE을 참조하세요.

=> 데이터를 정렬하지 않고 뒤의 남은 부분을 축소 , 파일 크기에 영향을 미친다.

그래서 데이터베이스를 정리할 때는

DBCC SHRINKDATABASE ( DATABASE명 , NOTRUNCATE )  ->

DBCC SHRINKDATABASE ( DATABASE명 , TRUNCATEONLY )

같이 순차적으로 하거나

DBCC SHRINKDATABASE ( DATABASE명)

옵션을 빼고 하면 [ NOTRUNCATE -> TRUNCATEONLY ]  { 위의 진행이 같이 일어난다 }

 

데이터베이스가 정렬되고 축소된다.

 

1.데이터베이스 정리/축소전

2. SHRINKDATABSE ( DATABASE명 , NOTRUNCATE ) -> mdf 영향을 미치지 않고 ldf 만 영향 ( 23GB -> 32분 소요)

3. SHRINKDATABSE ( DATABASE명 , TRUNCATEONLY )

By |2025-04-17T14:50:42+00:004월 16th, 2025|Categories: Server|0 Comments

About the Author: