문제

.NET Compact Framework 2.0 SP2 및 C#과 함께 SQL Server CE 3.1을 사용하는 Windows Mobile Winform 응용 프로그램을 개발하고 있습니다.

SQLCECONCENCET 객체가있는 양식이 있으며 실행 시간이 모두 열렸습니다. 시작시 연결을 열고 이벤트 종료시 닫습니다.

또한 SQL Server CE 데이터베이스를 읽을 수있는 클래스도 있습니다.

내 질문은 성능에 관한 것입니다. 이 두 상황 중 가장 좋은 것은 무엇입니까?

1. Reader 클래스의 객체를 만들 때 Contructor에게 SQLCeConnection 객체를 통과 시키고이 새로운 객체에 속성으로 고정하십시오.

2. 항상이 리더 클래스의 메소드를 호출 할 때 SQLCeConnection 객체를 매개 변수로 전달하십시오.

상황 1을 사용하면 두 개의 sqlceconnection 객체가 있다고 생각합니까?

자세한 내용이 필요한 경우 알려주세요.

고맙습니다!

도움이 되었습니까?

해결책

마지막 질문에 먼저 답변하려면 No No No No No No You Conception은 시나리오 1에 연결되어 있지 않습니다. 전달한 SQLCeConnection은 참조이므로 양식과 Reader 클래스는 동일한 기본 연결 객체에 대한 참조를 갖습니다.

나는 실제로 두 시나리오에서 큰 차이가 있다고 생각하지 않습니다. 양식의 수명을 위해 연결을 열어두기 때문에이 중등 클래스의 생성자 또는 각 방법에 대해 전달해도 중요하지 않습니다. 따라서 각 호출의 매개 변수 목록이 더 작습니다.

연결의 수명을 최소화하려는 경우 중요합니다. 예를 들어, 일반 SQL 서버에 연결하는 Windows 데스크탑 앱에서는 많은 사람들이 많은 양식을 열었으므로 성능 문제가 발생하기 때문에 양식의 수명에 대한 열린 연결을 실제로 유지하고 싶지 않을 것입니다. 서버. 따라서이 경우 마지막 순간에 연결을 생성하고 독자 루틴으로 전달하여 데이터를 가져 와서 즉시 닫습니다. 이 경우 시나리오 2가 더 좋습니다.

그러나이 시나리오는 모바일 애플리케이션에서는 중요하지 않습니다. 당신은 아마도 데이터베이스에 연결하는 유일한 사람 일 것이므로 연결을 열어 보더라도 중요하지 않습니다.

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