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 4593 게시물 읽기
No. 4593
DELETE문을 사용시 처리속도가 너무 느립니다.
작성자
사고친사람
작성일
2009-01-06 15:23
조회수
8,484

로그를 실시간으로 남기는  데이터 베이스가 있습니다.

현제 로그 테이블엔 4천만건의 데이터가 있는데

데이터가 너무 많아서 그중 2천만건의 데이터를 삭제할려고 합니다.

그래서 단순히 DELETE로 지울려고 시도는 했는데

1시간이 지나도 지워졌다는 응답이 없자  WAS가 테이블을 물고 있어서 느린가 싶어서 

취소버튼을 눌렀는데 ROLLBACK시간이 너무 걸립니다.

MS-SQL에 대해 문외한이다 보니 지금도 처리해결을 못하고 있는데

혹시 데이터를 최대한 빨리 삭제하는 방법이 없을까요?

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

4천 만건에 2천만건을 지우자면 시간이 많이 걸리지요..

transaction log도 걱정되고..


반대로 사용할 2천 만건을 다른 테이블로 옯기시고 (select into를 사용) -> 인덱스스 생성

->원본테이블 table name 변경 --> 새 테이블을 원래 이름으로 변경 -->관련 procedure, trigger, view

재생성

하는 것이 나아 보이네요.. rename된 table은 drop 하거나 truncate 하시면 될것 같고



disk 공간이 없으면


1. 사용할 2천만건을 view table 생성

2. bcp로 data out

3. select * into new_table from 4천만건_테이블 where 1 =2 로 빈테이블 생성

4. out 된 data를 bcp in

5. 인덱스 생성

6 4천만건_테이블 truncate or drop

7. new_table을 원래 테이블로 변경

8. 관련된 proc, trigger, view등을 drop후 재생성



참 사용전 사용 테이블과 관련된 proc, trigger, view등 이 있나 확인 

sp_depends table_name

top님이 2009-01-08 10:46에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
4596DTC 관련 테스트
임대원
2009-01-12
5214
4595select 질문 드립니다. [2]
이성빈
2009-01-08
5770
4594특정 단어들이 포함되지 않는 조건문 [1]
제로
2009-01-07
7204
4593DELETE문을 사용시 처리속도가 너무 느립니다. [1]
사고친사람
2009-01-06
8484
4592문자형을 int형으로 변환하려면 어떻게 해야 하나요?? [1]
박수영
2009-01-05
6551
4591MS-SQL에서 오라클의 describe 같은 명령있나요? [2]
권순용
2009-01-05
7540
4590외부접속은 되고 내부접속은 안되는 현상
두기
2008-12-31
6399
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다