Skip to content

조회 수 21009 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

SQL Server 2005 에서 데이터(mdf,ndf) 파일을 축소하는 방법에 대해서 아래와 같이 정리하였습니다.

데이터 파일의 할당 정보는 DBCC SHOWFILESTATS 명령을 사용하여 확인할 수 있습니다. 트 랜잭션 로그 파일의 현재 사용 가능한 빈공간을 조회할 때 DBCC SQLPERF(LOGSPACE) 명령을 사용하면 됩니다.


USE LAIGO

GO

DBCC SHOWFILESTATS



아래와 같이 LAIGO 데이터베이스의 데이터 파일 LAIGO 의 전체 크기와 사용량을 확인할 수 있습니다.

Fileid FileGroup TotalExtents UsedExtents Name FileName

--------------------------------------------------------------------------------------------------------------

1 1 880 92 LAIGO D:\LAIGO.mdf


(1개 행 적용됨)



자, 산수시간입니다.

SQL Server 의 기본 저장 단위 Page 의 크기는 8KB, 이며 8개의 연속 페이지로 크기가 고정된 Extent 로 저장됩니다.

1MB = 1024KB = 128(1024/8) Page = 16(1024/64) Extents


TotalExtents 값이 880 Extents 면, 1MB가 16 Extents 이므로 880/16 = 55 MB 가 됩니다.

UsedExtents 값이 92 면, 92/16 = 5.75 MB 가 됩니다.


즉, 현재 할당된 데이터 파일의 크기는 55MB 입니다만 실제 사용량은 5.75MB 라는 것을 알 수 있습니다.


불필요한 공간을 줄이기 위해 데이터 파일을 축소하는 방법은 아래와 같습니다. LAIGO 파일의 크기를 10MB 로 축소하라는 의미입니다. 실제 TotalExtents 가 160 즉, 10MB 로 줄었습니다.


DBCC SHRINKFILE (LAIGO, 10)


Fileid FileGroup TotalExtents UsedExtents Name FileName

--------------------------------------------------------------------------------------------------------------

1 1 160 92 LAIGO D:\LAIGO.mdf


(1개 행 적용됨)



TRUNCATEONLY 를 사용해 보면 어떨까요?


DBCC SHRINKFILE (LAIGO, TRUNCATEONLY)

DBCC SHOWFILESTATS


아직 사용되지 않은 뒷부분 빈공간이 싹뚝 잘려 나갔습니다.

Fileid FileGroup TotalExtents UsedExtents Name FileName

--------------------------------------------------------------------------------------------------------------

1 1 92 92 LAIGO D:\LAIGO.mdf


(1개 행 적용됨)


Single user 모드가 아니어도 작업은 가능합니다만 가능하면 Single User 모드가 아닌 상태에서 Deadlock 이 발생하는 사례가 있으므로 급한 상황이 아니라면 Single user 모드에서 작업하는 게 좋을 것 같다는 의견입니다. 만약 작업이 실패할 경우에는 SQL Error Log 을 살펴봐야 할 것 같습니다.

ALTER DATABASE LAIGO SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO


DBCC SHRINKFILE(LAIGO_DATA1, 3000) -- 3GB


ALTER DATABASE LAIGO SET MULTI_USER
GO



[참고자료]

DBCC SHRINKFILE(Transact-SQL)
http://msdn.microsoft.com/ko-kr/library/ms189493(SQL.90).aspx

  1. No Image 28Sep
    by ADMINPLAY
    2014/09/28 by ADMINPLAY
    Views 6796 

    [MS-SQL] MS-SQL 2000 이하에서 지원되던 오래된 쿼리 2008 이상에서도 사용하기

  2. No Image 20Sep
    by ADMINPLAY
    2014/09/20 by ADMINPLAY
    Views 5168 

    MicroSoft SQL Server 2008 1433 port 원격(외부)접속 허용하기

  3. No Image 16Jan
    by ADMINPLAY
    2012/01/16 by ADMINPLAY
    Views 14743 

    SET LOCK_TIMEOUT

  4. No Image 30Mar
    by ADMINPLAY
    2011/03/30 by ADMINPLAY
    Views 17193 

    SQL Server 2008 R2 버전에서 지원하는 기능

  5. No Image 03Jun
    by ADMINPLAY
    2010/06/03 by ADMINPLAY
    Views 25276 

    Fatal error: Call to undefined function: mssql_connect()

  6. No Image 29May
    by l2zeo
    2010/05/29 by l2zeo
    Views 21982 

    DBCC SHRINKFILE 트랜잭션 로그파일 축소

  7. No Image 23Apr
    by ADMINPLAY
    2010/04/23 by ADMINPLAY
    Views 20320 

    마소제공 mssql 관리툴

  8. No Image 28Mar
    by l2zeo
    2010/03/28 by l2zeo
    Views 21009 

    SQL Server 데이터 파일 축소

  9. No Image 25Feb
    by l2zeo
    2010/02/25 by l2zeo
    Views 16937 

    [FAQ]join을 하다가 막혔어요..

  10. [FAQ]mssql2005 디버깅 어떻게 해야 하나요?

  11. No Image 25Feb
    by l2zeo
    2010/02/25 by l2zeo
    Views 19914 

    [FAQ]하나의 서버에 두개의 database를 설치하려고 합니다.

  12. 데이터 원본에 저장 프로시저 사용하기

  13. No Image 24Feb
    by l2zeo
    2010/02/24 by l2zeo
    Views 24138 

    MSSQL 버전별 최대 용량 비교표

  14. No Image 24Feb
    by l2zeo
    2010/02/24 by l2zeo
    Views 18540 

    SQL Server 2008의 새로운 기능 - Parameter Embedding Optimization

  15. No Image 24Feb
    by l2zeo
    2010/02/24 by l2zeo
    Views 20391 

    SQL서버 성능카운터 활용을 위한 팁

  16. SQL Server 2005 백업 설정 방법

  17. No Image 23Feb
    by l2zeo
    2010/02/23 by l2zeo
    Views 19580 

    SQL Agent 작업 실행 상태 확인하기

  18. DB 서버에 특정 IP 접근 차단 방법

  19. [MSSQL 2000] 성능 모니터링

  20. No Image 20Dec
    by ADMINPLAY
    2009/12/20 by ADMINPLAY
    Views 34744 

    [SQL Server] Build Number of Each Version of SQL Server - MSSQL 버전정보

Board Pagination Prev 1 2 Next
/ 2

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234