SQL Server에 연결된 서버가 2 개 있고 원격 DB에 1 개의 레코드를 업데이트하려고합니다.
문제는 쿼리가 매우 오래 걸리고 (6 분), 이는 단지 1 레코드이므로 수천 업데이트해야하므로 다른 접근 방법을 취해야합니다. 어떤 아이디어 나 제안을 시도해 볼 수 있습니까?연결된 서버에 가입하는 업데이트 쿼리의 성능이 향상되었습니다.
LocalTable의 TaskID, TaskType 및 ClosedOn + Completed + Started에 대한 색인과 RemoteTable의 TaskID, TaskType 및 Status에 대한 색인이 있습니다.
이
내가 현재 아래UPDATE RemoteTable
SET RemoteTable.TaskType = LocalTable.TaskType,
RemoteTable.Status = CASE WHEN IsNull(LocalTable.ClosedOn, 0) <> 0 THEN 'Closed'
WHEN IsNull(LocalTable.Completed, 0) <> 0 THEN 'Completed'
WHEN IsNull(LocalTable.Started, 0) <> 0 THEN 'Started'
ELSE 'Created'
END,
FROM Tasks LocalTable INNER JOIN [172.1.2.3].DBName.dbo.Tasks RemoteTable
ON Local.TaskID = RemoteTable.TaskID
where RemoteTable.TaskID = 12345
실행 계획이 무엇 : 원격 테이블 스캔의 100 %가 원격 표에 대한 작업 ID에 있습니다.
업데이트 계획 – jfatal
업데이트 됨 –
호기심에서 벗어났습니다.이 FROM Tasks LocalTable INNER JOIN [172.1.2.3] .DBName.dbo.Tasks RemoteTable ON RemoteTable.TaskID = 12345 및 Local.TaskID = 12345' –