데이터를 변환하고 변형 된 (2 백만 행) 데이터를 SQL Server에 기록하는 서비스가 실행 중입니다. 프론트 엔드는이 테이블에서 읽습니다.읽기 성능 대비 SQL Server 쓰기 성능 균형을 위해 입력이 필요합니다.
자연스럽게 우리는이 데이터를 가능한 빨리 작성하고 읽기 성능을 희생시키지 않으려 고합니다.
현재 나의 접근 방식은 한 번에 한 서버 씩 개별 행을 작성하는 것입니다. 이것은 잠금을 최소화하는 것으로 보이지만 쓰기 속도는 최적이 아닙니다. 우리는 초당 수천 개의 행을 달성하고 있습니다.
데이터를 대량로드하려고 시도했지만 교착 상태와 시간 초과가 발생합니다. 나는 이것을 삽입/업데이트 할 때 잠금 에스컬레이션으로 인한 것이라고 가정하고 있습니다 (커밋을 256 행 청크로 일괄 처리).
읽기 성능 저하없이 데이터베이스에 레코드를 커밋하는 더 빠른 방법에 대한 아이디어가 있습니까?
일부 세부 정보 : 변환 된 데이터를 다른 테이블의 숫자에있는
- , 모든 인덱스는 읽기 성능을 최대화합니다.
- 데이터를 쓰는 데 끊임없이 열려있는 단일 연결을 사용합니다.