열 ID가 uniqueidentifier
인 단일 열 테이블 Ids
가 있습니다. ID 열뿐만 아니라 다른 많은 열이있는 다른 테이블 MyTable
있습니다. 한 번에 MyTable
1000에서 행을 삭제하고 싶습니다. MyTable
의 ID는 Ids
의 ID와 일치합니다.한 번에 테이블의 행을 삭제 함
WHILE 1 = 1 BEGIN
DELETE t FROM (SELECT TOP 1000 ID FROM Ids) d INNER JOIN MyTable t ON d.ID = t.ID;
IF @@ROWCOUNT < 1 BREAK;
WAITFOR DELAY @sleeptime; -- some time to be determined later
END
이것은 제대로 작동하지 않는 것 같습니다. 진술은 실제로 무엇이어야 하는가?
실적이 좋을까요? 내가 작업하고있는 데이터베이스는 꽤 커질 것입니다. – Nick
그 대답은 간단하지 않습니다. 나는 당신의 신분증이 색인되어 있는지 확인해야합니다. 그러나 일반적으로 이것은 효율적으로 작동해야합니다. – northpole
사실, MyTable에서만 삭제하기 때문에 ID에서 동일한 상위 1000 개의 ID를 반복해서 선택하지 않겠습니까? – Nick