0
데이터베이스 테이블에서 수백만 개의 레코드를 삭제하려고합니다.WHILE 루프를 반복 할 때마다 트랜잭션을 커밋해도 트랜잭션 로그가 커지지 않습니다.
커밋과 함께 모든 반복에서 TOP 25000 행을 삭제하기 위해 WHILE 루프를 사용했습니다.
제 생각에 행의 일부를 삭제하고 모든 반복을 커밋하면 트랜잭션 로그가 커지지 않습니다.
WHILE (1=1)
BEGIN
-- Logic to BREAK the loop like if no rows left to delete
IF ...
BEGIN TRANSACTION
DELETE TOP 25000
FROM FooBar
Where SomeDate<AnotherDate
COMMIT
END
하는 내가 '데이터베이스의 트랜잭션 로그'는 foobar '가득를 종료하고 그러나 :
나는 다음과 같은 뭔가를했다. '
트랜잭션 로그가 커지지 않도록하려면 어떻게해야합니까? - 삭제해도 지워지지 않습니까?
데이터베이스의 복구 모드는 무엇입니까? 그것은 간단해야합니다. 그리고 여기서 거래가 필요 없습니다. 단일 명령문은 트랜잭션입니다. – Paparazzi