테이블에 3 백만 개가 넘는 행이 있습니다. 사용자가이 테이블을 삽입하거나 업데이트하려고하면 다음 조건을 순차적으로 확인해야합니다. (비즈니스 필요)SQL Server 2008의 일치 알고리즘
- 행 중 동일한 주소가 있습니까?
- 행에 동일한 우편 번호가 있습니까?
- 행에 동일한 DOB가 있습니까?
분명히 새로 삽입되거나 업데이트 된 행은이 테이블의 많은 레코드와 일치합니다.
비즈니스 요구 사항은 첫 번째 일치 항목 (행)이 발견되어 해당 행이 반환되어야하는 경우 일치 프로세스가 종료되어야한다는 것입니다.
간단한 "SELECT"쿼리를 사용하여이 작업을 쉽게 수행 할 수 있습니다. 그러나 경기를 찾는 데는 매우 오랜 시간이 걸립니다.
효율적인 방법을 제안하십시오.
UNIQUE 제약 조건과 적절한 예외 처리? –
이 필드에서 테이블의 색인을 생성 했습니까? – MrTheWalrus
빨리 선택하려면 각 필드 (주소, 우편 번호, 의사 (DOB))의 색인을 생성해야합니다. 그렇지 않으면 각 필드에 대해 전체 테이블 검색이 수행됩니다. –