database.sarang.net
UserID
Passwd
Database
ㆍDBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DBMS Q&A 1481 게시물 읽기
No. 1481
안녕하세요 SQLite 사용에 대해 질문이 있습니다.
작성자
조민수(bemscho)
작성일
2009-01-06 04:24ⓒ
2009-01-06 04:25ⓜ
조회수
9,484

대학을 졸업하고 이제 필드로 뛰어들게 된 초보 개발자입니다.


SQLite3 사용중 막연한 에러에 부딪혀서 검색해 보던 중 좋은 사이트를 알게 되어 가입하게 되었습니다.


몇몇 질문을 드릴까 하는데 아시는 분은 답변해주시면 정말 감사하겠습니다.



현재 MFC로 서버/클라이언트 프로그램을 작성하고 있는데, SQLite3로 서버에서 데이터 관리를 하고 있습니다. 


멀티쓰레드로 클라이언트 요청에 대해 처리를 하고 있는데 그때마다 DB에서 필요한 자료들을 가져와야 하는 상황이라


각 쓰레드가 직접 DB를 open해서 자료를 select하거나 insert하도록 구현했는데, 몇몇 동기화 문제나 공유 sqlite3 구조체가 처리가 끝나지 않았는데


닫혀버리는 문제 때문에 DB에 대한 트랜잭션을 쓰레드 하나에서 처리하도록 했습니다.


그런데 이렇게 작성하고 나니 MFC 응용프로그램이 CPU 점유율이 5초 정도마다 50%까지 치솟아서 메인 다이얼로그가 먹통이 되곤 합니다.


쓰레드의 idle 문제일거라는 분들이 많으셔서 각 워커 쓰레드에다 Sleep을 주기도 해봤지만 점유율은 계속 저대로 인데요..


sqlite3 객체를 각 쓰레드마다 두어야 할지 아니면 점유율 문제를 해결해야 할지 고민이 됩니다.


혹시 이런 경험 있으신 분들 계시면 가이드라인을 제시해 주세요~



ps. CUBRID를 한번 써보고자 했는데 이미 sqlite3로 개발 중이어서 옮겨타질 못했는데, 여기 자료가 꽤 많군요 ^^ 좋은 글 많이 보고 갑니다.

이 글에 대한 댓글이 총 2건 있습니다.

혹시 CppSQLite3를 사용해서 짜셨나요? 제가 짠 간단한 예제가 있긴한데...

뭐 암튼 SQLite가 하나의 파일에 대해서 접근을 할테니 그 파일을 사용하는 Dll이라던지 클래스를 하나만 

만드는게 좋을것 같구요 다른 넘들은 그 클래스나 dll을 통해서 접근하는 방식으로 짜면 될듯합니다.

제가 그렇게 사용했었습니다. 그리고 프로그램 실행시 한번만 open하고 끝나기전까지 close하지 않는게

좋을것같습니다. open하는데 시간 많이걸리거든요.

음... 조금이나마 도움이 되었는지모르겠네요. 제가 블러그에 예제하나 올려볼테니 한번 참고 하세요.

http://blog.naver.com/mllmaster/130040300372

최성화(metell)님이 2009-01-06 20:15에 작성한 댓글입니다.
이 댓글은 2009-01-06 20:21에 마지막으로 수정되었습니다.

조언 감사합니다^^


저도 처음에 CppSQLite3로 짰을때 그렇게 쓸걸 그랬네요~


소스 잘 보았습니다. 아주 잘짜셨던데, 저는 C++에 내공이 너무 없어서 멋지게 코드를 만들지를 못했어요 ^^


웹이랑 프로세스 내에서 최소 5, 6 개 쓰레드가 한 꺼번에 접근하니까 동기화 문제도 있고 효율은 떨어지지만 결국 매 트랜잭션 마다 열고 닫기로 마무리 했습니다.



CppSQLite3를 버리는 순간부터 CPU 점유율 문제가 대두되서, 최성화님께서 말씀해주신 하나의 클래스를 통해서 트랜잭션을 처리하도록 짠 소스는 결국 쓰지 못하고 고이 묻어두었습니다. ㅠ_


3일동안 한 작업을 버리고 다시 CppSQLite3로 롤백해버렸죠;; 



블로그에 유익한 자료가 많군요^^ 자주 탐독하러 가겠습니다. 감사합니다.

조민수님이 2009-01-06 22:59에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1485DBMS 개발에 관해서는 어떤 책을 봐야 할까요? [3]
novice
2009-02-04
7072
1484질문 몇가지 입니다 [1]
서민호
2009-01-16
6675
1483DB migration에 관해 질문입니다 [1]
송용진
2009-01-09
7279
1481안녕하세요 SQLite 사용에 대해 질문이 있습니다. [2]
조민수
2009-01-06
9484
1478데이터베이스 개념에 대한 질문입니다. [1]
김진우
2008-12-26
7753
1477WinCe (CEDB,EDB) 에 관하여 질문합니다.
김진우
2008-12-24
7740
1476oledb에 대해서 질문이 있습니다.
DB맨
2008-12-22
9705
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다