2009-09-02 2 views
3

엄청난 양의 초과 공간을 예약하는 MSDE (SQL 2000, 서비스 팩 4)에서 실행되는 데이터베이스가 있습니다. 각 테이블에 대해 sp_spaceused를 사용하면 총 예약 크기는 2102560KB, 데이터 크기는 364456KB, 사용되지 않는 크기는 1690760KB가됩니다. 즉 사용 된 공간의 거의 4 배를 예약합니다. 최악의 원인은 자주 쓰여 지지만 결코 삭제되지 않는 테이블입니다 (트랜잭션 로깅). 일반적으로 삭제는 크기가 매우 작고 레코드 수가 적습니다. 디스크에SQL Server의 예약 된 공간이 너무 많습니다.

데이터베이스 파일이 2 기가 바이트 제한에 있으며이 등 백업에 문제를 일으키는

I 디스크에 사용되는 파일의 크기에 영향을 미치지 않고 DBCC SHRINKDATABASE, DBCC SHRINKFILE 및 DBCC REINDEX를 시도

2 가지 질문 - 데이터베이스 파일 크기를 줄이고 SQL Server에서 초과 공간을 예약하지 못하게하려면 어떻게해야합니까?

감사

답변

0

당신이, 전체 DB 백업을 취하는 DB를 다시 인덱싱, incrementaly를 축소 한 후 다시 인덱싱됩니다 할 수 있습니다. 그렇게하면 현재 크기의 DB를 갖게 될 것입니다.

또한 로깅 테이블을 다른 테이블로 이동해야합니다.

+0

불행히도 (그리고 나는 이유를 모른다.) 백업이 불가능했다. 디스크에 백업하려고하면 시간이 초과됩니다. –

4

USE < DBNAME>
GO
백업 LOG < DBNAME> TRUNCATE_ONLY WITH

DBCC SHRINKDATABASE (< 데이터베이스 이름>)

DBCC SHRINKFILE (< 로그> 5)
GO
DBCC SHRINKFILE (< 데이터 파일>, 5)
당신이

+0

시도해 봤지만 예약 된 공간을 1 바이트 씩 축소하지 않았습니다. –

+0

백업 로그와 압축 파일 사이에 DBCC SHRINKDATABASE ('DatabaseName') – Coentje

+0

이 사용되었습니다. 고마워요 @ 러셀! 잠깐주의 : DBCC SHRINKFILE 명령의 경우 DBNAME 데이터베이스에서 SELECT * FROM sys.database_files를 사용하고 "이름"필드를 사용했습니다. –

0

최악의 범죄자에 대해 별도의 파일을 생성하고 별도의 파일 그룹에 배치 파일 경로를 간부 sp_helpfile을 모르는 경우는

이동합니다. 테이블을 다른 파일로 이동하면 파일이 압축됩니다. shrinkfile을보다 효과적으로 만듭니다. 필요한 경우 테이블 당 하나 이상의 파일을 만들 수 있습니다.

+0

MSDE에서 2GB 제한이 있다는 문제가 있습니다.제한이 각 파일 그룹이 아닌 파일 그룹의 합계를 초과하므로 새 파일 그룹을 만드는 것은 불가능합니다. –

0

모든 제안을 주셔서 감사합니다. 결국, 나는 새로운 빈 데이터베이스를 만들고 대규모 데이터베이스의 데이터를 복사 한 다음 데이터베이스의 이름을 변경해야했습니다.

예약 된 크기를 계속 주시합니다. 바라건대, 이것을 일으킨 데이터베이스 설정에 문제가있었습니다. 동일한 소프트웨어/MSDE를 사용하는 다른 고객은이 문제가 없습니다.