안녕하세요. 처음 질의글을 올려봅니다.
mssql 2008 r2 version을 사용중에 있습니다.
특정테이블에 데이터가 계속 쌓이다가 데이터가 너무 커져서 일부 행을 삭제를 해도
mdf 파일 사이즈라던지 해당 테이블의 저장소 공간은 줄지는 않더라구요
삭제한 공간이 빈공간으로 남아있다고 확인되는데
그 삭제한 빈공간이 어느정도가 되는지는 사이즈를 확인할수 없을까요?
sp_spaceused 명령어에 나오는
unallocated space 나 unused 정보인줄 알았는데 테스트를 해보니 꼭 그런것 같진 않아서 문의를 드려봅니다.
(데이터를 삭제했는데 unallocated space가 줄때도 있고 더 늘어날때도 있어서...)
위 정보가 무슨 정보인지도 아시면 댓글부탁드립니다.
감사합니다.
Comment 2
-
dreamryu
2018.10.05 16:35
-
minsouk
2018.10.06 02:33
sp_spaceused [[ @objname = ] 'objname' ] [, [ @updateusage = ] 'updateusage' ] [, [ @mode = ] 'mode' ] [, [ @oneresultset = ] oneresultset ] [, [ @include_total_xtp_storage = ] include_total_xtp_storage ]
updateusage 옵션을 안 주신 모양 입니다.
삭제 후 rebuild 나 defrag 를 안 해주신다면
uniform extents 에서 일부 페이지에 데이터가 남아 있을수 있겠지요? 그런것들은 모두 쓰는 페이지 입니다.
깊게 보실려면 iam gam sgam 등을 학습해서 dbcc page 명령어로 하나 하나 다 까볼수 있습니다.
MSSQL의 data file 용량은 shrink 명령이나 수동으로 용량을 지정하지 않는한
내부의 table data가 삭제되더라고 줄지 않습니다.