6

BDE Paradox ファイルのハッキングされたシステムですべてのデータ ストレージを実行するレガシー アプリを更新しようとしています。このプログラムは、特定の狭い条件下ではかなりうまく機能しますが、パフォーマンスに深刻な問題があります。

より良いデータベース システムに更新することで、改善を試みたいと思います。私が必要としているのは、ローカル データベースです。できれば、現在の「テーブルごとに 1 つ以上のファイル」システムではなく、すべてを 1 つのファイルに格納できるデータベースです。外部キーの関係とテーブルのインデックス作成をサポートする必要があり、数十万の要素を持つテーブルのクエリからすばやく結果を返せる必要があります。

この最後の 1 つは重要です。現在のシステムは索引付けされていますが、それはあまり重要ではないようです。N がテーブルの合計サイズである場合、すべてのクエリは O(N) 時間で実行されるように見え、テーブルが大きくなり始めると恐ろしく遅くなります。理由はよくわかりませんが、それは消えなければなりません。

また、D2009 以降で動作する必要があります。誰でもいくつかの推奨事項を提供できますか?

4

10 に答える 10

7

組み込みの Firebird (および一般的な Firebird) にもう 1 票を投じましょう!

Interbase 6.0 アプリを組み込みの Firebird 1.5 に移植する素晴らしい経験をしました。ドキュメントを読んでしばらくすると、実際の変換には文字通り 20 分かかり、今では私のアプリは Vista と Windows 7 で快適に動作します。マルチユーザーサポートが必要な場合は、とにかく通常の Firebird を見てください)。

これは、データベース用の 1 つのファイルと、エンジン用のいくつかの小さな DLL であり、デプロイ、保守、およびバックアップが簡単です。開発中に役立つツールは数多くあり、Delphi コミュニティでの IB と Firebird のテクニカル サポートは他に類を見ません。

SQL のサポートは、制約、トリガー、およびストアド プロシージャで優れています (言語を強化するのに役立つ UDF も用意されています。Delphi で記述し、データベースでインライン関数などとして使用できる DLL です。非常に高速で非常に柔軟です)。

パフォーマンスに関する最後のポイント - Interbase はとにかく常に非常にきびきびしていて、これまでの組み込みの Firebird での私の経験は、それが「悲鳴を上げる」ということです - 本当に、本当に感銘を受けました。

于 2009-12-03T08:35:48.893 に答える
6

私はこのSQLite ラッパーを使用して、D2009 で成功を収めました。ほんの数分で起動して実行しました。インデックス作成と非常に低いオーバーヘッドがあります。(これは無料で、SQLite Dll 以外には何も必要ありません)

また、 Delphi Inspirationの商用 SQLite ラッパーもあり、このサイトによると、非商用および教育目的での無料ライセンスもあるとのことです。私はそれを使用していません。

組み込みの Firebird も使用しましたが、それと通信するための接続コンポーネントも必要です。私は IBObjects を持っており、それをサーバー バージョンと組み込みバージョンの両方に使用しています。他の無料の Firebird データベース コンポーネントを試してみましたが、気に入ったものや自信があるものは見つかりませんでした。

[編集]
ほとんどの人が Firebird を提案しているので、私が過去に試した、または聞いたことのある Firebird の接続コンポーネントをいくつか示します。

Mercury Database Objects - フリー/オープンソース
IBObjects - 商用 (私はこれを自分で購入しました)
FIBPlus - 商用
Firebirds ODBC ドライバー- フリー/オープンソース
ZeosLib - フリー/オープンソース

于 2009-12-02T20:43:36.770 に答える
3

この質問にはいくつかの良い情報があります.SQLite3とFirebird Embeddedは良い選択肢のようです.

于 2009-12-02T19:23:05.553 に答える
1

Sybase が提供する Advantage Database を試す (Extended Systems から購入)

http://marketing.ianywhere.com/forms/ADS91-30-Day

クライアント/サーバーまたはインターネット機能が必要ない場合は無料です。

欠点は、100% VCL ではないことです。そのため、VCL には DLL への静的リンクが含まれています。

アプリのスケーリングが必要になった場合でも、データベースを再度変更する必要はありません。

于 2009-12-02T22:40:17.353 に答える
1

同時実行性?

私は 1 つの (Delphi 以外の) プロジェクトで SQLite を使用しましたが、非常に満足しています。

それ以外の場合、Delphi に最適な組み込み単一ファイル DBMS は Firebird のようです。

于 2009-12-02T19:24:53.600 に答える
1

Postgresql をデータベースとして使用することをお勧めします。私たちが取り組んでいるすべてのプロジェクトで Postgresql を使用し、1 つのテーブルに 400 万を超えるレコードをテストして、かなりうまく機能しました。

于 2009-12-02T23:09:04.590 に答える
0

ローカル データベースに BDE/Paradox を使用し、リモート データベースに Oracle 8i を使用した大規模なアプリケーションの変換を完了しようとしています。

DevArt の UniDAC を使用しています。これにより、MSSQLServer をローカル データベースとしてヒットし、引き続き Oracle をリモートとしてヒットできる単一のコンポーネント セット (古い BDE から完全に解放された) が可能になります。プロバイダーを変更するだけで、どちらの側でも簡単にデータベースを切り替えることができるようになる見込みがあります。

私はこのアプローチが好きで、コンポーネントは非常によくできているようです。

ジェイ (D2007)

于 2009-12-04T00:08:39.223 に答える
0

私は何年もの間NexusDBを使用してきましたが、これは小さく、信頼性が高く、柔軟なデータベースです。それは Delphi で書かれており、完全なソースが付属しており、アプリケーションに完全にコンパイルすることも (DLL を配布する必要はありません)、クライアント サーバー システムとして実行することもできます。

パフォーマンス要件を満たすかどうかを判断するのは困難ですが、適切なフィールドにインデックスを付けていれば、SQL クエリのパフォーマンスに問題はありませんでした。これは、1 つのテーブルにつき 1 つのファイルの製品ですが、だからと言って、見るのを止めてはいけません。

これは商用製品ですが、シングル ユーザー/組み込みアプリケーションでのみ使用できる DCU のみのバージョンを無料で提供しています。

于 2009-12-02T22:26:57.580 に答える
0

もう 1 つのオプションは、ADO と Microsoft Access データベースを使用することです。唯一の欠点は、ユーザーが Jet エンジンと MDAC をインストールしなければならないことです...ほとんどのマシンはそうしています。これの利点は、MSSQL へのアップサイジングが容易になることです。SQL Server データベースを指すように接続文字列を変更し、いくつかのマイナーなクエリ変更を行うだけです。

于 2009-12-02T21:29:22.710 に答える
0

Postgresql は非常に優れていますが、オラクルに近い重機なので、非常に重いアプリケーションを実行できますが、維持するのは少し面倒です

Firebird は 2009 年の接続用に組み込まれているかどうかに関係なく、FIB を使用できます。また、devrace.com にはナグ画面を表示するだけの試用版があるため、商用アプリでなくても問題ありません。

それ以外の場合は、300ドルを費やして購入できる商用アプリの場合、interbase / firebird用のdevartコンポーネントも使用しました。無料でzeosを使用したい場合は、それらも非常に優れていますが、http://sourceforgeに支払うものを手に入れることができます.net/projects/zeoslib/ SQL lite は単一のファイルではなく、マルチ ユーザーの場合は最悪です

于 2009-12-03T09:44:06.530 に答える