database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 1563 게시물 읽기
No. 1563
공간 사용에 대해 (delete와 Drop의 차이)
작성자
김민영(visionmcoj)
작성일
2004-09-17 17:39
조회수
3,240

또 질문드릴께요..

 

Disk 공간에 대해서인데요/

테이블을 생성하고 거기에 데이터를 삽입하고 이렇게 사용하면은

그 테이블에 공간이 할당되는거잖아요?

 

이럴때요..

데이터를 delete 하면 공간 할당이 해제되나요?

아니면 drop 을 시켜야만 공간을 반환시킬 수 있나요?

혹은 delete 던 drop 이던 공간을 반환시키지 않나요?

 

density 부분에 대해 고민하다가 여쭤봅니다..

(density가 아니라면.. mdf 파일-datafile size- 크기에 대해 고민하다가 여쭤봅니다.)

 

고민하게 된 이유? : 일배치로 테이블 데이터를 삭제했다가 새로 insert 하고.. 이런 작업을 매일 하게 됩니다..

혹.. insert 할때 delete 되었던 공간으로 insert 안되고 새롭게 데이터 파일 사이즈를 늘여갈까봐 걱정되서요..

 

그럼 파일 사이즈에 대해서 알려주셨으면 합니다.

이 글에 대한 댓글이 총 2건 있습니다.

 

공간의 반환을 받는 주체가 DBMS라면, delete나 drop은 공간의 반환에서는 동일하다고 볼 수 있습니다.
그래서 일배치 작업으로 인한 절대적 insert 량이 증가하지 않는다면, 이전에 delete에 의해 반환된
공간을 사용합니다.(단 단편화가 발생하지 않고, 다른 작업이 delete 반환 공간을 사용하지 않는다는
 전제하에서요)

그렇지만 공간의 반환을 받는 주체가 OS이라면 delete나 drop을 해도 공간은 반환을 하지 않고 아래의
조건을 하에서 반환됩니다.(이렇게 함으로서 DBMS가 필요한 공간을 원는데, 발생하는 처리 시간을 감소할
 시킬 수 있습니다)
  1. 다른 프로그램에서 공간 할당 요청이 OS를 통해 있을 때, 여유 공간이 있으면 OS에게 반환을 합니다.
     1) 반환 여부는 DBMS 마음입니다.
  2. DB의 옵션 중 자동감소가 선택되어 있으면, MS-SQL이 판단하여 여유 공간을 OS에게 반환합니다.
     1) 반환 공간 및 작업 시간은 DBMS 마음입니다.
  3. DBCC Shrinkfile 또는 이와 비슷한 관리 명령을 통한 강제적으로 여유 공간을 반환시킬 때
     1) 현재 데이타가 있는 공간은 반환할 수 없습니다.

여유공간(데이타가 할당되지 않은 공간,sp_spaceused으로 확인)이 있고, 위 조건에 해당된다면 OS에게
여유공간이 반환되고, 이는 mdf파일의 축소를 가져옵니다.
(파일 사이즈를 줄이면 Backup시에 적은 공간으로 backup을 할 수 있습니다)


또 MS-SQL의 파일 공간 사용에 대하여 이야기 할 때, 다루어야 하는 것이 단편화의 문제인데 이는
MS-SQL의 DISK I/O의 기본 단위가 8Kbyte의 페이지라는 개념으로 이루어지고, DISK 공간 할당은
이 페이지들의 모임인 익스텐드(페이지 * 8)로 이루어지기 때문에 발생을 하게 됩니다.
(이 부분이 말씀하신 density와 관련이 있을 것 입니다.)

자세한 내용는 아래의 명령에 대한 BOL의 내용을 참조하세요..
 관리명령
   DBCC SHOWCONTIG
    DBCC DBREINDEX

 관련 용어
    fillfactor
    pad_index

 

가을남자님이 2004-09-20 10:18에 작성한 댓글입니다. Edit

고맙습니다. ^^

김민영(visionmcoj)님이 2004-09-20 14:21에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
1566[질문]한자(한문) 깨짐현상 해결좀 해주세요. . [1]
이리
2004-09-20
7568
1565문자(대소문자) 비교 [1]
초보자
2004-09-20
3396
1564[질문] 백업 스케줄은 어떠게 바꾸나요?
이종선
2004-09-18
2451
1563공간 사용에 대해 (delete와 Drop의 차이) [2]
김민영
2004-09-17
3240
1562솔라리스에서 MS-SQL을 사용하려고하는데요 [2]
어렵다
2004-09-17
2866
1561MS-SQL에 데이타베이스 이동에 관해서.. [2]
경호선
2004-09-17
2871
1560SQL 사용중 현 값이 지워지고 다른값이 올라옵니다.
초보SQL
2004-09-17
1849
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다