2009-06-30 5 views
4

(sqlite, berkeley db)와 같은 내장 데이터베이스를 사용하기 위해 C#으로 데스크톱 응용 프로그램을 만들고 싶습니다. 어떻게 이러한 데이터베이스에 대한 벤치마킹을 시작할 수 있습니까?sqlite, berkeley db 벤치마킹

+0

여기에 몇 가지 정보가있는 링크 : [http://www.perlmonks.org/?node_id=152749](http://www.perlmonks.org/?node_id=152749) –

+0

그 연구는 7 년입니다 부팅에 매우 나쁜 벤치 마크입니다. 그것은 벤치 마크를하지 않는 방법의 예로서 만 좋은 것입니다. – Lucky

+0

성능면에서 필자는 Berkeley 임베디드 DB를 사용했습니다. 이 기술은 스펙트럼에서 최고의 읽기 액세스 권한 중 하나를 제공하는 핵심 가치 기반 스토리지입니다. 그러나 컴파일해야하는 쿼리 언어가 노출되지 않도록해야합니다. BDB 위에 SQLite를 사용하면 BDB 사용이 쉬워 질 것입니다.하지만 추가 비용이들 것입니다. 또한 Berkeley DB에서 업데이트가 비싸기 때문에 최대 작성 및 읽기 작업과 최소 업데이트 작업이있는 경우 BDB를 고려하십시오. – Varun

답변

3

벤치마킹을 생각하기에 앞서 데이터베이스의 기능을 비교해야합니다.

SQLite는과 BDB는 그들이 지원하는 기능에 완전히 다른, 그리고 데이터가 복잡하면

2

동의 (즉, 데이터가 배치되는 방법 인 경우), I는 관계형 데이터를 쉽게 쿼리에 대한 SQLite는 게 좋을 것 오사마와 먼저 기능을 비교해야합니다.

그러나 "복잡한"데이터가 자동으로 sqlite로 이동해야한다고 동의하지 않습니다. 어떤 벤치 마크도 보지 못했지만 (어떤 것도 쓰지는 않았지만) BerkeleyDB가 거의 항상 우수한 성능을 발휘할 것이라는 반응을 보였습니다.

그렇습니다. 나는 그것이 내 자신의 결정을 내리는 데 사용할 것이라고 생각하지 않는다. 그런 기능으로 돌아갑니다. 내가 원하는 모든 것이 단순한 데이터 저장소라면, sqlite를 선택하는 편이 더 쉬울 것이다. 마찬가지로 임의의 필드에서 임의로 내 데이터를 쿼리 할 수있게하려면 (또는 언젠가는 "엔터프라이즈"SQL 데이터베이스에 저장하는 경우) 향후 마이 그 레이션이 쉬워 질 것이므로 sqlite를 사용할 것입니다. 그러나 단순한 데이터 저장소를 뛰어 넘어 트랜잭션 안전성, 높은 동시성, 고 가용성, 많은 독자가있는 작가 등 나는 매우 잘 정의 된 "쿼리"집합을 가지고 있습니다. , 아마도 BDB를 원할 것입니다.

내 데이터의 "복잡성"이 실제로 이러한 방정식에 포함되지 않는다는 점에 유의하십시오. 그 이유는 간단합니다. BDB는 내 객체를 원래 직렬화 된 형식으로 유지할 수 있습니다. 어떤 향미의 Sql은 IMO가 내 응용 프로그램을 복잡하게 만드는 유명한 임피던스 불일치와 함께 제공됩니다.

BDB를 진지하게 고려하고 있다면, BDB가 제공하는 상점의 종류가 반드시 호환되지는 않으므로 앞에 올리는 저장 유형을 결정해야한다고 알려야합니다.

5

최근 오라클은 BDB의 btree 스토리지 위에 sqlite3 인터페이스를 추가 했으므로 sqlite3에 대한 코드를 작성한 다음 BDB를 플러그인 할 수 있어야합니다. 캐치는 라이센스입니다. BDB는 당신에게 오픈 소스를 지불하거나 가야합니다; sqlite 당신이 원하는대로하겠습니다.

+1

http://www.oracle.com/technology/products/berkeley-db/sql.html –