Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

bw#

SHRINK - SHRINKDATABASE / SHRINKFILE 본문

STUDY/MS SQL

SHRINK - SHRINKDATABASE / SHRINKFILE

bw# 2020. 5. 24. 17:50

[SHRINK]

  • 디스크 용량이 부족하거나 로그 파일이 불필요하게 늘어났을 때 이용
  • SHRINKDATABASE와 SHRINKFILE이 존재
    - SHRINKDATABASE는 해당 데이터베이스의 데이터파일, 로그파일에 적용
    - SHRINKFILE은 특정 데이터파일, 로그파일을 축소
  • 원하는 DB 우클릭 - [태스크] - [축소] - [파일] 선택 시 얼마나 축소 시킬 수 있는지 확인 가능

1. 파일 축소

DBCC SHRINKFILE ( [file명 | file_id]  { , emptyfile } |  { , target_size,  [NOTRUNCATE | TRUNCATEONLY]  } )

                                   ①                 ②                  ③                             ④

① 축소할 파일명 또는 file_id입력

② 지정한 파일의 모든 데이터를 동일한 파일그룹의 다른 파일로 migration

③ 해당 파일이 데이터가 저장된적없는 빈 파일일 경우 기본 크기를 새로 지정, 

DB 축소 후 뒤에 남겨둘 여유 공간의 비율 (db 크기의 해당 비율만큼을 여유공간으로 잡음)

 NOTRUNCATE VS TRUNCATEONLY ; 옵션을 선택하지 않을 경우 둘다 수행

2. 데이터베이스 축소

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

                                                  ①                                              ②                                      ③        

① 축소할 DB명 또는 database_id 입력. 0은 현재 데이터베이스 의미

② DB 축소 후 뒤에 남겨둘 여유 공간의 비율 (db 크기의 해당 비율만큼을 여유공간으로 잡음)

③ NOTRUNCATE VS TRUNCATEONLY ; 옵션을 선택하지 않을 경우 둘다 수행

 

 

※ NOTRUNCATE / TRUNCATEONLY

 1) 현재 상태

2) 'B' DELETE

3-1) NOTRUNCATE 옵션 : 할당되지 않은 여유공간을 데이터 파일 끝으로 이동, 파일크기가 줄어들진 않는다.

3-2) TRUNCATEONLY 옵션 : 데이터 파일 끝의 할당되지 않은 여유공간을 TRUNCATE, 파일크기를 줄인다.

            *해당 건은 데이터 파일의 끝에 여유공간이 없으므로 아무일도 일어나지 않는다.

3-3) 옵션 없이 SHRINK :  NOTRUNCATE > TRUNCATEONLY 순으로 진행

3. DBCC SHRINKFILE 후 출력 결과값

DbId

FileId

CurrentSize

MinimumSize

UsedPages

EstimatedPages

6

2

1296472

108752

1296472

108752

 

DbId : 축소하려고 시도한 파일의 데이터베이스 ID

  • FileId : 축소하려고 시도한 파일의 파일 ID 번호
  • CurrentSize : 현재 파일이 차지하고 있는 8KB 페이지의 수 --> 1296472 * 8 = 현재 축소된 파일의 크기
  • MinimumSize : 파일이 최소한으로 차지할 수 있는 8KB 페이지의 수 -- > 108752 * 8 = 파일이 최소한으로 작아질 수 있는 크기
  • UsedPages : 현재 파일에서 사용되는 8KB 페이지의 수
  • EstimatedPages : SQL Server에서 예상하는 파일 축소 가능 크기에 해당하는 8KB 페이지의 수