SQL 테이블의 INSERT가 여러 가지 이유로 느릴 수 있음을 알고 있습니다.
- 테이블에 INSERT TRIGGER 존재
- 검사해야하는 많은 강제 제약 조건 (일반적으로 외래 키)
- 테이블 가운데에 행이 삽입되면 클러스터형 인덱스에서 페이지가 분할 됨
- 모든 관련 비 클러스터형 인덱스 업데이트
- 테이블의 다른 활동으로부터 차단
- 잘못된 IO 쓰기 응답 시간
- ... 내가 놓친 것이 있습니까?
특정 사건에 책임이있는 사람을 어떻게 알 수 있습니까? 페이지 분할과 비 클러스터형 인덱스 업데이트의 영향을 어떻게 측정 할 수 있습니까?
임시 테이블에서 한 번에 약 10,000 행을 삽입하는 저장 프로 시저가 있는데 10k 행당 약 90 초가 걸립니다. 다른 spids가 시간 초과되기 때문에 허용 할 수 없을 정도로 느립니다.
실행 계획을 살펴본 결과 INSERT CLUSTERED INDEX 작업과 FK 조회에서 모든 INDEX SEEKS를 볼 수는 있지만 왜 그렇게 오래 걸리는지 확실하지 않습니다. 트리거는 없지만 테이블에 소수의 FKey (정확하게 색인 된 것으로 표시됨)가 있습니다.
이것은 SQL 2000 데이터베이스입니다.