내가 내 데이터베이스 (병합 복제에서 구독 데이터베이스) 열이 26000 행간단한 업데이트 쿼리는
업데이트가이 테이블에 삭제로
테이블이 currentStatusStatusID {Primary Key + Clustered Index}, StatusName, StatusDate, UserID,CreatedDate, ModifiedDate, ModifiedBy, AllowDelete,AllowUpdate
입니다
있습니다을 테이블 CurrentStatus
이 너무 오래 걸리는 갑자기 너무 많은 시간을 들여 1 분 30 초를 말하고 심지어 5 분이라고 말합니다.
아래 쿼리는 실행하는 데 1 분 이상 걸립니다.
update StatusMaster set StatusName='OK' where StatusID = 22
테이블에 이전에 5 개 인덱스가 있었다 (심지어 고속으로 실행하는 데 사용됩니다. 쿼리) 이제 업데이트로/쿼리가 실행되지 않습니다 삭제 , 난 모든 인덱스를 삭제하고 보관 한 경우에만 두 개의 인덱스 1) StatusID의 Clustered Index 2) 복제로 자동 생성 된 고유 한 비 클러스터형 인덱스 인 rowguid 열의 복제 인덱스입니다.
어쨌든 백업을하고 데이터베이스를 복원하면 동일한 테이블의 쿼리가 정상적으로 실행됩니다.
한 가지 더 알아 두어야 할 것은 서버의 약 20 개 컴퓨터에서 매 2 분마다 복잡한 쿼리를 실행하고 있다는 것입니다.
이 쿼리는 실행에 많은 시간을 소비합니까?
은 이러한 테스트를 수행 할 때 실행되는 복제입니까? DB가 구독자 인 경우 실제로 데이터를 업데이트하거나 삭제하면 안됩니다. – Diego
모든 대문자로 올리지 마십시오. 그것은 무례하고, 당신이 "소리 쳤다"것 같습니다. –
@Diego 예 복제가 실행 중이고 병합 복제가되어 있으므로 삽입 업데이트가 구독자와 게시자 모두에서 작동 할 수 있습니다. – Thakur