2013-05-28 5 views
1

동료가 응용 프로그램에 대한 단일 데이터베이스 연결을 열면 해당 연결 풀을 사용하여 열고 닫는 것보다 훨씬 빠르고 빠르다는 것을 동료가 방어하고 있습니다.응용 프로그램에 대한 단일 데이터베이스 연결

그는 ApplicationStart 메소드를 가지고 있는데 여기에서 그는 Application('db')에 있으며이 연결을 앱 전체에 유지합니다. 이 응용 프로그램은 대부분 읽기 전용 데이터를 포함합니다.

어떻게 그를 설득 할 수 있습니까?

답변

5

이는 "응용 프로그램"이 무엇인지에 따라 다릅니다. 이것이 단일 스레드에서 작동하고 순차적으로 작업을 수행하는 클라이언트 응용 프로그램 인 경우 솔직히 어느 쪽 눈에 띄는 차이점이 없습니다. 이 시나리오에서 풀을 사용하면 기본적으로 1 개의 항목 풀이되며 풀에서 연결을 여는 것은 사실상 순간적입니다 (네트워크 IO에 비해 눈에 띄지 않음). 그 시나리오에서 나는 여전히이 시나리오를 변경할 때 가정을 피할 수 있기 때문에 inbuilt 풀링을 사용한다고 말합니다.

그러나 응용 프로그램이 둘 이상의 스레드를 사용하거나 다른 메커니즘을 통해 한 번에 두 가지 이상의 작업을 수행하는 경우 (async) 단일 연결을 사용하면 매우 나쁩니다. 이 완전히 실패하거나으로 실패하거나 연결을 동기화해야합니다. 그러면 연결이 심각하게 제한됩니다. 모든 서버 측 응용 프로그램 (모든 종류의 웹 응용 프로그램, WCF 서비스, SOAP 서비스 또는 소켓 서비스)은 자신의 아이디어에 매우 악영향을 미칩니다.

아마 그를 설득하는 주요 방법은 간단합니다. 그에게 그것을 증명하라고 부탁하십시오. 이 차이점을 보여주는 반복적 인 테스트/데모를 요청하십시오.

관련 문제