Mas*_*ler 6 database delphi delphi-2009 delphi-2010 local-database
我正在尝试更新一个遗留应用程序,该应用程序在一个黑客攻击的BDE Paradox文件系统中完成所有数据存储.该程序在某些狭窄的条件下运行良好,但它有严重的性能问题.
我想通过更新到更好的数据库系统来尝试改进.我需要的是一个本地数据库,最好是我可以将整个东西存储在一个文件中,而不是当前的"每个表一个或多个文件"系统.它必须支持外键关系和表索引,并且必须能够从具有数十万个元素的表的查询中快速返回结果.
最后一个很重要.当前系统已编入索引,但这似乎并不重要.所有查询似乎都在O(N)时间内运行,其中N是表的总大小,当表开始变大时,它会变得非常慢.我不确定为什么,但这必须消失.
它必须在D2009及更高版本下工作.有人可以提供一些建议吗?
另外投票给嵌入式Firebird(和Firebird一般)!
我刚刚有一个很棒的经验,将Interbase 6.0应用程序移植到嵌入式Firebird 1.5; 在阅读文档后不久,实际转换花费了20分钟,现在我的应用程序在Vista和Windows 7中运行愉快.如果您不需要多用户支持,那么我会认真看看嵌入式Firebird(如果你确实需要多用户支持,为什么不看看常规的Firebird呢?
它是db的单个文件和引擎的几个小DLL,它易于部署,维护和备份.在开发过程中有许多工具可以帮助,而对于IB和Firebird,Delphi社区的技术支持是首屈一指的.
SQL支持非常适用于约束,触发器和存储过程(我们还有UDF来帮助增强语言 - 可以用Delphi编写并在数据库中用作内联函数等的DLL.非常快,非常灵活).
关于性能的最后一点 - 无论如何,Interbase总是非常活泼,到目前为止我对嵌入式Firebird的体验是"尖叫" - 真的,真的给我留下了深刻的印象.
我在D2009下使用了这个SQLite Wrapper并取得了很好的成功.我在几分钟内完成并运行.它具有索引和非常低的开销.(这个是免费的,除了SQLite Dll之外你不需要任何其他东西)
还有来自Delphi Inspiration的商业SQLite包装器,该网站称他们也有免费的非商业和教育用途许可证.我没用过那个.
我还使用了嵌入式Firebird,但您还需要连接组件与之通信.我有IBObjects,这就是我用于服务器和嵌入式版本的东西.我已经尝试过其他免费的Firebird数据库组件但是没有真正找到我喜欢的或者我对此感到自信.
[编辑]
由于大多数人都在推荐Firebird,这里有一些Firebird的连接组件,我过去曾尝试过,或者我听说过:
Mercury数据库对象 - 免费/开源
IBObjects - 商业(我自己买了这个)
FIBPlus - 商业
Firebirds ODBC驱动程序 - 免费/开源
ZeosLib - 免费/开源