dbExpress 与本机驱动程序
I was reading Holgerwa's question and I have a question.
Is there any significant performance improvement by changing from dbExpress to other driver specific?
Can we use dbExpress and still use specific DB engine features?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
取决于要比较的 dbExpress 驱动程序和“其他驱动程序”。但是一个好的库可能比标准的 dbExpress 驱动程序更快。您可以在此处查看我们的基准测试结果。其中
TADQuery
是 AnyDAC 查询对象。Borl TSQLQuery
是使用标准 dbExpress 驱动程序的 Delphi TSQLQuery。是的,当可以通过数据库 SQL 方言访问某个功能时。否,如果某个功能可通过数据库客户端 API 访问。例如,使用 SQL Server dbExpress 驱动程序,您可以使用
BACKUP DATABASE
SQL 命令备份 SQL Server 数据库。但是使用 Firebird dbExpress 驱动程序无法备份 Firebird 数据库,因为这需要使用 Firebird 服务 API。与许多其他领域类似。Depends on which dbExpress driver and "other driver" to compare. But a good library may be faster than a standard dbExpress driver. You can see our benchmark results here. There
TADQuery
is AnyDAC query object.Borl TSQLQuery
is Delphi TSQLQuery using standard dbExpress driver.Yes, when a feature is accessible through database SQL dialect. No, if a feature is accessible through database client API. For example, using SQL Server dbExpress driver you can backup SQL Server database using
BACKUP DATABASE
SQL command. But using Firebird dbExpress driver you cannot backup Firebird database, as that requires to use Firebird services API. The similar with many other areas.您还可以在同一个项目中同时使用这两种类型的驱动程序:
dbExpress 驱动程序适用于所有不需要特定功能的事物,因此您可以在不同数据库系统之间实现某种可移植性,同时坚持使用 Delphi 标准组件,代价是性能略有下降。
真正的本机驱动程序/组件集(如 IBX),仅用于 dbExpress 无法解决的特定功能,例如创建数据库、执行备份/恢复或执行某种特定的维护给数据库供应商。本机驱动程序还可用于优化需要高速的模块,例如批量加载操作。
还有第三种方法,即使用第三方数据库独立组件,例如 UniDAC 和 AnyDAC,据其开发人员称,它比 dbExpress 更轻量、更优化、更强大,而保持数据库的独立性和对特定的某些访问 特征。
You can also use both type of drivers simultaneously in the same project:
A dbExpress driver for all things that do not need specific features, so you can achieve some kind of portability between different database systems while getting stuck to Delphi standard components, at the expense of a little decrease in performance.
A true native driver/component-set (like IBX) only for specific features that dbExpress can't address, like creating a database, doing a backup/restore or doing some kind of maintenance specific to the database vendor. Native drivers can also be used to optimize modules demanding high speed, such as bulk load operations.
There is also a third way, by using third-party database-independent components, like UniDAC and AnyDAC, that, according to its developers, are more lightweight, more optimized and more powerful than dbExpress, while preserving database independency and some access to specific features.