2012-09-12 3 views
0

SQL Server에서 초당 20 행만 업데이트하는 SQL 명령 작업이 있지만 시간이 오래 걸리는 200,000 개 이상의 행을 업데이트해야합니다. SCD (유형 2)를 사용할 때 레코드를 삽입하거나 업데이트하지 않습니다. (심지어 오류를주지 않음)논문에서 업데이트 속도를 높이는 방법

일부 행 배치가 전송되고 SQL 명령 작업이 노란색으로 변하고 있습니다. 그러나 열은 매우 느리게 (초당 20 행) 업데이트되지만.

어떻게 업데이트 속도를 높일 수 있습니까?

답변

3

SQL 태스크를 사용하지 마십시오. 이는 목표 데이터베이스에 대해 발행 된 200,000 개의 갱신 명령문을 가질 것으로 예상 할 수 있도록 싱글 톤 조작을 수행합니다. 쿼리 컴파일 프로세스에서 몇 단계를 피하기 위해 저장 프로 시저를 만들었지 만 테스트하고보아야하는 경우에는 약간의 향상이있을 수 있습니다.

성능 향상을 얻는 진정한 방법은 스테이징 테이블을 만들고 해당 테이블로 업데이트 할 모든 행을 덤프하는 것입니다. 데이터 흐름이 완료된 후 SQL 실행 태스크를 연결하여 준비 테이블에서 대상 테이블로 일괄 업데이트를 수행하십시오.

사진을 만들 것 알려줘 그 대신 RBAR (행보다는 집합 기반 방식으로 작동하는 (SQL 실행 작업에서) MERGE 문을하려고 더 명확

+0

아주 좋은 제안입니다. +1. 하지만 데이터베이스에 테이블이 너무 많아서 suppliment/intermediate update table을 만들 수 없습니다. 레코드 집합에 해당 출력을 저장할 수 있으며 레코드 집합을 원본으로 사용할 수 있습니까? – Zerotoinfinity

0

위의 SQL 2008를 사용하는 경우 또는 행) SQL 명령

관련 문제