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 4754 게시물 읽기
No. 4754
트랜젝션 로그를 피하는 삭제방법이 있나요?
작성자
서재원(cinos)
작성일
2009-05-15 09:55
조회수
6,239

수고하십니다.

일본에서 프로그래머로 일한지 1년이 되어가는 신입입니다.

SQL의 S도 모르는상태에서 일을 시작하였습니다만, 본 커뮤니티를 참고로 하여 하루하루 버티고 있습니다.


다름이 아니오라, 제 첫 일 중의 하나가 삭제 스크립트의 작성이 되었습니다만,

고객측 SQL서버의 하드디스크의 물리적인 용량이 적은 관계로, 상당히 제한된 환경 하에서 작업을 하게 되었습니다.

5000만건 정도의 레코드를 삭제해야 하는데 그 중 3000만건 정도를 삭제하면 하드디스크가 꽉 차버리는 상황이 발생하고 있습니다.


여기서 질문을 드립니다만, 트랜젝션 로그를 피하면서 삭제를 실시할수 있는 방법은 진정 없는 것인지요?

이 방법이 통하지 않는다면, 테이블을 날리는 수 밖에 없다고 생각됩니다만;;

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

 복구 모델을 어떤 것을 선택하시더라도, 모든 트랜잭션은 로그에 기록 됩니다.

다만, 단순 복구 모델일 경우, 해당 트랜잭션이 끝난후 로그를 비울수는 있습니다.


만일 5000만건 정도의 레코드를 삭제 해야 한다면, 한번에 하지 마시고, 여러차례에 걸쳐서 하시면,

5000만건이 모두 지워질때까지 계속 증가하는 로그 사이즈를 줄일수는 있습니다.


예를 들어, 먼저 1000만건을 삭제하고 checkpoint 실행후, 다시 1000만건을 삭제 하는 식으로 순차적으로 접근 하시면, 어느정도 로그 증가를 막을수 있을 겁니다.

lnx4u님이 2009-05-22 11:11에 작성한 댓글입니다. Edit

전부 삭제만 한다면 사용해 보세요.

제약 조건도 있으니 검색은 필요할 것입니다.



truncate table table명

이서영님이 2009-09-02 00:22에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
4757비디오방 체크인 체크아웃 [1]
정희수
2009-05-20
8097
4756윈도우 서버 ms-sql에 관해 질문입니다. [1]
조용현
2009-05-19
6102
4755[now사용]오늘 하루의 날짜와 시간을 출력하는 쿼리문을 알려주세요~ [1]
박수영
2009-05-18
6346
4754트랜젝션 로그를 피하는 삭제방법이 있나요? [2]
서재원
2009-05-15
6239
4753커서 선언 후 테이블 변경시 에러 이유 [1]
머슬피그
2009-05-13
6614
4751SQLRELAY + FREETDS 사용시 프로시져 output 변수 받기
sqler
2009-05-07
6976
4750ODBC 프로그래밍시 레코드셋을 반환하는 프로시저의 리턴값 받아오기~
김홍식
2009-05-07
7012
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다