2014-09-26 12 views
1

이진 데이터를 저장하는 테이블이 있습니다. 그것에는 490,409 행이 있습니다. 바이너리 varbinary(MAX) 열의 데이터 길이를 합하면 총 크기는 약 12GB가됩니다.삽입 된 데이터의 양에 비해 SQL Server MDF 파일의 크기가 너무 커집니다.

그러나 새 행을 삽입 할 때마다 .MDF 개의 파일이 GB 단위로 늘어납니다. 단 몇백 바이트 정도만 넣어도됩니다. 자동 성장은 5 %로 설정됩니다. 표에 sp_spaceused을 실행하면 사용되지 않은 0k가 표시됩니다. DB에 대해 실행하면 16320.56MB 크기의 DB 중 345.41MB가 할당되지 않습니다.

.MDF 파일이 상대적으로 적은 양의 데이터를이 테이블에 삽입 할 때마다 파일 크기가 커지면 어떻게해야합니까?

답변

2

기본적인 계산 (16320.56 ×.05)으로 816MB로 비교적 가깝습니다. 그리고 테이블의 다른 열에 대한 추가 색인을 고려하면 추가 성장 크기를 고려할 수 있습니다.

필자는 개인적으로 백분율 기반 자동 성장을 피할 것입니다. 특히 이것이 귀찮아서 고정 된 크기 증가분으로 이동하는 경우에는 특히 그렇습니다.

+0

색인이 매우 작습니다. 나는 4GB가 어디에서 왔는지를 알지 못한다. 고정 된 성장 크기에 대해 당신은 무엇을 제안 하겠는가? – jdf35w

+0

이상적으로는 데이터베이스에 필요한 공간을 미리 할당하고 자동 성장을 완전히 비활성화하는 것이 좋습니다. 그러나 때로는 옵션이 아닙니다. 보통 1GB로 기본 설정되어 있지만 데이터베이스가 얼마나 빨리 성장하고 하드웨어가 어떤지에 따라 크게 다릅니다. 두 가지 경쟁 요인, 즉 성장량을 줄이기 위해 충분히 큰 증분을 조정하려고하지만 성능에 영향을 미치지는 않습니다. – md4