2009-04-03 2 views
2

4 천만 개의 행이있는 테이블이 있습니다.
나는 한 번에 약 2 백만을 집어 들고 그들을 "처리"하고 싶다.
왜?
Cos processing processing 10million + 행은 성능을 저하시키고 종종 시간이 초과됩니다. (데이터 크기의 독립성을 위해이 작업이 필요하므로 시간 제한을 늘리면 안됩니다.)
또한 SQL Server를 사용하고 있습니다.
SQL 테이블의 모든 행을 일괄 처리 할 수있는 방법은 무엇입니까?

답변

1

신원 키와 같은 증가하는 키가 있습니까? 그리고 그것은 클러스터 된 인덱스입니까? 그렇다면, 당신이있어 마지막 열쇠를 추적하고, 같은 일을 매우 간단해야한다 : 또한

SELECT TOP 1000000 * 
FROM [MyTable] 
WHERE [Id] > @LastId 
ORDER BY [Id] 

- ExecuteReader 같은과를 읽으십시오 당신은 너무 많은 버퍼링되지 않도록 행.

물론, 수천 개의 행을 넘는 경우에도 가끔 왕복을 수락하고 한 번에 10000 개의 행에 대한 요청을 여러 번 만들 수 있습니다. 나는 이것이 실제적인면에서 덜 효율적이라고 생각하지 않는다. (여기 저기에 수 밀리 세컨드).

+0

신분 확인 키가 없습니다. 내가 그랬다면 인생은 간단해질 것입니다. 아마도 신임 테이블에 ID 키를 추가 할 것입니다. –

관련 문제