이 시나리오에는 LAN (서버 A)과 원격 위치 (서버 B)의 두 가지 데이터베이스 서버가 있습니다.원격 서버의 DELETE/INSERT 성능 향상
우리 프로젝트의 데이터를 서버 A에서 서버 B로 전송하려고합니다. 이렇게하려면 먼저 특정 ProjectID에 대해 서버 B의 기존 데이터를 제거한 다음 서버 A에서 서버 B로 데이터를 삽입하기 만하면됩니다. 모든 데이터는 서버 A에서 준비됩니다.
실제 전송되는 데이터 양은 대략 2.5MB입니다. 20MBit 연결을 사용하면이 작업을 한 번에 완료해야합니다. 그러나 SQL을 사용하면 30-40 초가 소요됩니다. 실제로 같은 양의 데이터를 FTP로 전송하는 경우 4 초가 걸립니다. :)
SET NO COUNT가 켜져 있습니다. 원격 쿼리를 더 빨리 수행 할 수 있다고 읽었습니다.
왜 이렇게 느린 전송을 일으킬 수 있습니까?
편집 :
SQL이 실제로 발생해야합니다.
- 모든 종류의 데이터베이스에서 데이터를 선택하고 서버 A의 DB에 삽입
- 서버 B에서 삭제 DB 어디 ProjectID = x
- 서버 B에 삽입 DB - 선택 * 서버에서 DB ProjectID = x
마지막 두 단계는 약 40 초가 걸립니다. 그리고 제가 알기로는 오래된 레코드를 제거하고 새로운 레코드를 삽입하는 것입니다. 조인이 없거나 t-SQL 구문이 어렵습니다.
당신이 우리에게 좀 더 많은 정보를 주어야한다고 생각합니다. SQL이 원인이라고 생각한다면 아마도 의사 코드를 보여줄 것입니다. – dave
나는 dave에 동의하지만 일반적인 대답을 –