문제

3 개의 데이터베이스, 2 개의 SQL Server 데이터베이스 및 Oracle One과 대화하는 .NET WinForm Click-Once Deployed Fat Client가 있습니다.

첫 번째 SQL Server 데이터베이스 인 마스터를 호출하겠습니다. 나는 마스터 데이터베이스에 더 많은 테이블과 열을 추가하고 싶었지만 그렇게 할 권리가 없다고 말하면서 협상 할 수 없다고 들었습니다. 그래서 새 SQL Server 데이터베이스를 추가하기로 결정했습니다.이 데이터베이스는 Extensions 데이터베이스를 호출하여 마스터에 배치하려는 추가 정보를 저장하겠습니다.

Extension 데이터베이스를 마스터와 동일한 서버에 배치 할 권한이 없기 때문에 다른 서버에서 확장 DB를 생성하고 확장자 데이터베이스 서버에서 마스터 데이터베이스 서버로 DB 링크를 만들었습니다. 이를 통해 두 데이터베이스에 걸쳐있는 쿼리를 수행 할 수있었습니다. 나는 또한 때때로 연결할 세 번째 데이터베이스 인 Oracle One을 가지고있었습니다.

Oracle 데이터베이스에 연결하려면 Oracle 드라이버를 최종 사용자의 PC에 설치해야한다고 생각했기 때문에 Winform 클라이언트가 웹 서비스를 호출하기로 결정했으며 웹 서비스가 결과를 반환 할 것입니다. 일관성을 위해 내 직감이 데이터베이스 액세스 작업을 한 장소에서 수행해야한다고 말했기 때문에 FAT 클라이언트가 SQL Server 데이터베이스와 대화해야 할 때 동일한 접근 방식을 취했습니다. 즉, 웹 서비스를 통과했습니다.

이제 저는 웹 서버를 먼저 호출 해야하는 성능이 너무 커지고 뚱뚱한 클라이언트에서 사용자의 PC에 연결을 열지 않고 데이터베이스를 호출하고 웹 서버가 데이터베이스를 호출하고 SQL Server 데이터베이스. 내가 언급하는 앱은이 세 가지 프로덕션 데이터베이스에 액세스해야하지만 실제로 생산에서 실행할 수없는 비공식 유틸리티이므로 개발 웹 서버와 프로덕션 데이터베이스 사이의 일반적인 고속 파이프가 의심됩니다. 여기에 적용하지 마십시오.

최상의 성과를 위해 WinForm 앱이 SQL Server 데이터베이스에 직접 연결을 설정해야합니까? 트레이드 오프는 무엇입니까?

오늘날에도 추가 드라이버가 Oracle 데이터베이스에 연결해야하거나 .NET Framework의 모든 것이 필요하다는 것이 여전히 사실입니까? 원한다면 Oracle 데이터베이스에도 직접 연결할 수 있습니까?

또한 링크 서버를 사용하는 것이 두 개의 개별 DB 연결을 생성하고 데이터를 모으는 것보다 느리다는 것을 알았습니다. 최상의 결과는 두 개의 a-sync 쿼리를 시작한 다음 DB 링크를 사용하여 하나의 쿼리로 반환되는 것처럼 데이터를 결합했을 때 발생했습니다. 그러나 이것은 유지 보수 문제로 이어지고 데이터베이스에서 SQL DO 조인을 수정해야 할 때이 접근법을 후회하게되었습니다.

도움이 되었습니까?

해결책

나는 몇 년 동안 엔터프라이즈 애플리케이션을 개발 해 왔으며, 이로 인해 중간 계층 (귀하의 경우 웹 서비스)이 항상 의미가 있으며 UI에서 직접 DB에 연결하는 것은 항상 아니 나를 위한. 나는 당신이 잘못된 결정을 내렸다고 생각하지 않습니다. 장기적으로 중간 계층을 갖는 것은 많은 의미가 있습니다. 또한 구축 한 웹 서비스는 다양한 응용 프로그램에서 사용할 수 있습니다.

다른 팁

성능 요구 사항을 모르지만 WCF 웹 서비스는 빠릅니다. 데이터베이스 액세스를위한 중간 계층 (웹 서비스)이있는 것은 잘못된 것이 없습니다. 또한 매우 안전합니다.

SQL 서버에서 Oracle Server를 링크 서버로 구성한 경우 별도의 Oracle 드라이버가 필요하지 않다고 생각합니다. SQL 서버를 데이터 소스로 사용할 수 있습니다.

더 빠른 결과를 얻으려면 저장된 절차를 작성하십시오. SQL Management Studio를 사용하는 경우 실행 계획을 확인하여 저장 프로 시저를 최적화 할 수 있습니다 (지수 구성).

이 시나리오에서는 웹 서비스가 필요하다고 생각하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top