2011-02-23 4 views
6

sqlite 연결을 열어 두어야합니까, 아니면 배치 쿼리를 완료 할 때마다 닫아야합니까?Sqlite 연결을 유지해야합니까?

업데이트 : 이것은 차이가 있다면 iPhone/iOS에만 해당됩니다.

+0

많은 정보를 제공하지 않습니다. 쿼리의 기간, 보유하고있는 데이터의 양 등에 따라 달라집니다. –

+2

한번 열고 닫으면 한 번 닫으면 너무 많이 닫히고 열지 않고 처리하기 쉽습니다. 그러나 사용하지 않으려는 경우 무료 리소스를 사용하십시오. –

+1

내 앱은 일반적으로 사용자가 앱과 상호 작용할 때 sqlite DB에 자주 액세스합니다. 사용자가 버튼, 테이블 행 등을 터치 할 때 앱의 전체 수명 동안 연결을 유지하거나 필요에 따라 열고 닫는 것이 더 나은지 궁금합니다. 특히 sqlite가 이전 실행 계획을 기억하지 못하는 연결을 닫으면 열기를 닫을 때 성능이 저하 될 수 있다는 것을 읽은 이후로 특히 그렇습니다. –

답변

8

DB 상호 작용이 사용자 중심이라는 점을 감안할 때 일반적으로 개방적이라고 말하고 싶습니다. 활동을 수행하고 닫은 다음 사용자에게 반환하십시오. 이것은 공중에 아무것도 남기지 않습니다. 성능에 지나친 강조가되는 경향이 있습니다. 내가 아는 단일 사용자 응용 프로그램에 대한 최선의 접근법은 성능이 좋다고 가정하고 그렇지 않은 경우이를 증명하는 것입니다.

자신을 증명하는 방법 중 하나는 연결을 열고 닫는 데 걸리는 시간을 측정하는 몇 가지 테스트 코드입니다. 다음은 각 전략과 함께 일련의 행동을 시도하는 것입니다. 이것은 당신을 납득시킬 것입니다.

연결을 열어 놓는 것의 단점은 (일반적으로 단일 사용자 응용 프로그램에서) 열린 상태로 유지하는 이점보다 중요합니다.

내 2 센트입니다.

+2

그것은 매우 합리적인 접근법입니다. 개발자로서, 나는 항상 더 많은 두통을 유발하는 사전 최적화 (pre-optimization) 경향을 항상 싸워야합니다. –

관련 문제