2014-05-11 2 views
0

허용되는 시간 내에 액세스 데이터베이스 (* .accdb)의 테이블에서 엄청난 양의 레코드를 필사적으로 삭제하려고합니다.VBA/ACCESS : 테이블에서 빠르게 많은 레코드를 삭제하는 방법?

자세한 정보 : 해당 레코드가 테이블 (약 300.000 행)에서 삭제되는 것으로 가정 된 정수 ID (약 50.000)의 컬렉션이 있습니다.

"컬렉션의 각 x에 대해"+ "db.execute (SQL 삭제 명령)"접근법을 사용하면 시간이 오래 걸립니다.

시도 할 수있는 다른 해결책이 있습니까? 사전 및 안부

많은 감사, 세바스찬

답변

1

DELETE FROM table WHERE id IN (...)과 적절한 예를 들어, 같은 IN의 부분 집합을 채우기 같이 사용 무언가 id IN (5, 6, 12).

편집 : 실용적인 이유로 IN 세트의 ID 양을 1000으로 제한 할 수 있습니다. 이는 여전히 큰 요인으로 쿼리 수를 줄입니다.

+1

* 계속 * BETWWEN이 더 효율적일 수 있습니다. 그것은 큰 * if *입니다. – RubberDuck