문제

BDE Paradox 파일의 해킹 된 시스템 시스템에서 모든 데이터 저장을 수행하는 레거시 앱을 업데이트하려고합니다. 이 프로그램은 특정 좁은 조건에서 꽤 잘 작동하지만 심각한 성능 문제가 있습니다.

더 나은 데이터베이스 시스템으로 업데이트하여 시도하고 개선하고 싶습니다. 내가 필요한 것은 로컬 데이터베이스, 바람직하게는 모든 것을 현재 "테이블 당 하나 이상의 파일"시스템 대신 한 파일에 저장할 수있는 경우입니다. 외국 키 관계 및 테이블 인덱싱을 지원해야하며 수십만 개의 요소가있는 테이블 쿼리에서 결과를 빠르게 반환 할 수 있어야합니다.

이 마지막 것이 중요합니다. 현재 시스템은 색인화되었지만 그다지 중요하지 않은 것 같습니다. N이 테이블의 총 크기 인 O (n) 시간으로 모든 쿼리가 실행되는 것처럼 보이며 테이블이 커지기 시작하면 끔찍하게 느려집니다. 왜 그런지 잘 모르겠지만, 그것은 사라져야합니다.

그리고 D2009 이상에 따라 작동해야합니다. 누구든지 몇 가지 권장 사항을 제공 할 수 있습니까?

도움이 되었습니까?

해결책

내장 된 파이어 버드 (및 일반적으로 파이어 버드)에 대한 또 다른 투표!

방금 있었어요 엄청난 Inter -Base 6.0 앱을 임베디드 파이어 버드 1.5로 포팅 한 경험; 문서를 읽는 동안 잠시 후, 실제 변환은 문자 그대로 20 분이 걸렸으며 이제 내 앱은 Vista와 Windows 7에서 행복하게 실행됩니다. 다중 사용자 지원이 필요하지 않으면 내장 된 Firebird를 심각하게 살펴보십시오 ( 다중 사용자 지원이 필요하다면 어쨌든 일반 파이어 버드를 보지 않겠습니까).

DB의 단일 파일과 엔진 용으로 작은 DLL 몇 개이며 배포, 유지 관리 및 백업이 쉽습니다. IB와 Firebird의 Delphi 커뮤니티의 기술 지원을 개발하는 동안 도움이되는 도구가 많이 있습니다.

SQL 지원은 제약, 트리거 및 저장 프로 시저에서 우수합니다 (우리는 또한 델파이로 작성하고 데이터베이스에서 인라인 함수 등으로 사용될 수있는 언어 - DLL을 보강하는 데 도움이되는 UDF가 있습니다. 매우 빠르고 매우 유연합니다).

성능에 대한 마지막 요점 - 잘 인터베이스는 항상 꽤 끔찍했고, 지금까지 내장 된 파이어 버드에 대한 나의 경험은 그것이 '비명을 지르는'것입니다. 정말 감동했습니다.

다른 팁

나는 이것을 사용했다 sqlite 래퍼 D2009에 따라 좋은 성공을 거두었습니다. 나는 그것을 몇 분 안에 가르쳤다. 인덱싱과 오버 헤드가 매우 낮습니다. (이것은 무료이며 sqlite dll 외에 다른 것이 필요하지 않습니다)

상용 SQLITE 래퍼도 있습니다 델파이 영감 그리고이 사이트는 비상업적 및 교육용 사용 라이센스도 무료가 있다고 말합니다. 나는 그것을 사용하지 않았다.

나는 또한 Firebird 내장을 사용했지만, 당신은 또한 그것과 대화하려면 연결 구성 요소가 필요합니다. 나는 ibobjects를 가지고 있으며 그것이 서버와 임베디드 버전 모두에 사용하는 것입니다. 나는 다른 무료 Firebird 데이터베이스 구성 요소를 시도했지만 실제로 내가 좋아하거나 자신감을 느낀 것을 찾지 못했습니다.

편집하다
대다수의 사람들이 Firebird를 제안하고 있기 때문에 여기에 내가 과거에 시도했거나 들었던 Firebird의 연결 구성 요소가 있습니다.

수은 데이터베이스 개체 - 무료/OpenSource
ibobjects - 광고 (나는 이것을 직접 샀다)
fibplus - 광고
Firebirds ODBC 드라이버 - 무료/OpenSource
Zeoslib - 무료/OpenSource

좋은 정보가 있습니다 이 질문 -SQLITE3 및 FIREBIRD 내장은 좋은 옵션 인 것 같습니다.

동시성?

나는 하나의 (델파이가 아닌) 프로젝트에서 sqlite를 사용했고 그것에 매우 만족했습니다.

그렇지 않으면 델파이를 위해 선택한 내장 단일 파일 DBM이 파이어 버드 인 것 같습니다.

Sybase가 제공하는 Advantage 데이터베이스 시도 (확장 시스템에서 구매)

http://marketing.ianywhere.com/ads91-30-day

클라이언트/서버 또는 인터넷 기능이 필요하지 않은 경우 무료입니다.

단점은 100% VCL이 아니기 때문에 VCL에는 DLL에 정적으로 링크가 포함되어 있습니다.

앱의 확장이 필요한 경우 데이터베이스를 다시 변경하지 않아도됩니다.

PostgreSQL을 데이터베이스로 사용하는 것이 좋습니다. 우리는 우리가 작업하는 모든 프로젝트에서 사용하여 한 테이블에 4 백만 개가 넘는 레코드로 테스트하고 잘 작동했습니다.

또 다른 옵션은 ADO 및 Microsoft Access 데이터베이스를 사용하는 것입니다. 유일한 단점은 사용자가 대부분의 기계가하는 제트 엔진과 MDAC를 설치해야한다는 것입니다. 이것에 대한 장점은 MSSQL의 쉽게 조정한다는 것입니다. 연결 문자열을 변경하여 SQL Server 데이터베이스를 가리키고 몇 가지 사소한 쿼리를 변경하십시오.

나는 사용했다 NexusDB 수년 동안 작고 신뢰할 수 있고 유연한 데이터베이스입니다. Delphi로 작성되었으며 전체 소스와 함께 제공되며 응용 프로그램에 완전히 컴파일하거나 클라이언트 서버 시스템으로 실행할 수 있습니다.

성능 요구 사항을 충족할지 여부는 알기가 어렵지만 올바른 필드를 색인화하고 있다면 SQL 쿼리 성능에 문제가 없었습니다. 테이블 제품 당 하나의 파일이지만 살펴 보지 마십시오.

상용 제품이지만 단일 사용자/임베디드 애플리케이션에서만 무료로 사용할 수있는 DCU 전용 버전을 제공합니다.

저는 로컬 데이터베이스에 BDE/Paradox를 사용한 대규모 응용 프로그램의 변환을 마치고 원격 DB의 경우 Oracle 8i를 전환하고 있습니다.

Devart의 Unidac을 사용하고 있습니다. 이를 통해 MSSQLServer를 로컬 DB로 부딪히고 오라클을 리모컨으로 계속 부딪 칠 수있는 단일 구성 요소 세트 (이전 BDE에서 완전히 무료)가 가능합니다. 공급자를 변경하여 데이터베이스를 훨씬 더 쉽게 전환 할 수 있다는 전망이 있습니다.

나는이 접근법이 마음에 들며 구성 요소는 아주 잘 된 것 같습니다.

제이 (D2007)

PostgreSQL은 매우 좋지만 중장비는 오라클에 더 가깝기 때문에 매우 무거운 앱을 수행 할 수는 있지만 유지하기 위해 약간의 고통을 겪을 수 있습니다.

Firebird는 환상적인 내장이거나 연결되지 않거나 2009 년에 Fib Plus를 사용할 수 있습니다. Devrace.com에서 NAG 화면을 표시하는 시험판이 있으므로 상용 앱이 아닌 경우 괜찮습니다.

그렇지 않으면 상용 앱이라면 300 $를 소비하고 구입할 수 있습니다. 인터베이스/파이어 버드에 DevArt 구성 요소를 사용했으며 무료 사용 Zeos를 원하지만 지불 한 금액을 얻으려면 매우 좋습니다. http://sourceforge.net/projects/zeoslib/SQL Lite는 단일 파일이 아니며 다중 사용자 인 경우 짜증납니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top