2012-07-25 10 views
9

몇 명의 소프트웨어 개발자와 만남을 가졌고 응용 프로그램 코드에서 가능한 한 빨리 데이터베이스 연결을 닫는 것이 좋습니다. 누군가가 응용 프로그램에서 연결을 유지하는 데 어떤 해가되는지 말해주십시오. 데이터베이스 연결을 유지하는 것이 비용이 많이 듭니까?

나는 데이터베이스 버스에 좌석과 같은 그것의

+0

작은 규모의 사용에 어떤 해가되지 않을 것,하지만 일부 DB를 그렇게 오랜 기간 동안 열려있는 연결을 유지, 연결별로 라이센스 액세스의 다른 사람을 박탈하고 있습니다. –

+0

왜 -1일까요? 나는 그것이 매우 유용한 질문이라고 생각했다. – TimeToCodeTheRoad

답변

8

생각해의 단일 테이블에서 데이터를 읽고 있었다.

열고 연결, 당신이 그 자리를 채우기로 - 결국, 버스가 가득 차서 더 이상 승객 (또는 오픈 이상의 데이터베이스 연결을) 받아 들일 수 없습니다. 버스가 승객을 거절해야 할 때마다 승객은 다른 버스가 오기를 기다려야합니다.

연결이 끝나면 연결을 닫으면 더 많은 연결을위한 여유 공간이 생깁니다. 즉, 데이터베이스와 상호 작용해야하는 프로그램이 많아지면 연결을 기다릴 필요없이 필요한 작업을 수행 할 수 있습니다. 해방. 연결을 닫지 않는다는 것은 데이터베이스가 주변에있는 모든 연결로해야 할 일을 파악해야한다는 것을 의미합니다. 데이터베이스가 새 연결을 여는 것처럼 빠르게 연결을 닫지 않으면 문제가 발생할 수 있습니다.

당신이 연결 풀을 사용하여 (아래 설명 참조) 할 때이 변경; 이러한 상황에서는 수영장에서 열기 및 닫기 연결을 처리해야합니다. 연결을 풀링하지 않으면 필요 이상으로 열어두면 리소스가 낭비됩니다.

+4

이것은 진실이 아니다. 커넥션 풀러를 사용할 때 연결을 항상 열어 놓는 것이 더 낫다. 왜냐하면 대부분의 DBMS * 열기 * 연결은 꽤 약간의 작업이기 때문이다. –

+0

+1, 좋은 비유! @a_horse_with_no_name도 동의합니다. 그 연결은 비용이 많이 든다는 것입니다. – halfer

+0

팁 주셔서 감사합니다 - 나는 내 대답의 맨 끝에 단락을 추가했습니다. 더 많은 조정이 필요한 경우 알려주세요. – girasquid

관련 문제