Firebird 2.5 VS Interbase 9/XE - 表现更快?

Yor*_*iev 6 sql database firebird interbase

我们处于这样一种情况,我们必须在2个数据库之间进行选择.我们目前使用的是Firebird,但有时因为它堆积了太多的交易历史或其他东西而滞后,因此应该采用备份恢复以使事情变得更好.

在我的具体情况中:数据库主要有填充数字字段的表.查询主要有内部联接.几乎与我插入和选择的速率相同.(但是在未来,我正在寻找更严格的选择)有3个主要表格,有几百亿的记录(每秒继续增长).

但我想看看哪个是最好的整体进入正常负载,如上面的那些,以及重载 - 比如选择和处理选定的字段,整体表现为事件触发和存储过程执行,我认为这是足够好的知识选择他们之间(更多的意见是受欢迎的),可能会帮助其他人民做出决定.

我问

  • 与Interbase一样吗?
  • 是否值得努力跳向Interbase?
  • 整体表现更好?
  • Interbase是否有像Firebird这样的历史问题,它会不断增长数据库并减慢它的速度?

PS:我现在暂不解决这个问题.也许会有人在正常的,每天的查询基础上真正处理数据库,问题和结果对我来说会更有用,其他人也会对这种情况感到不满.

Mar*_*eel 8

您描述的问题通常是由错误的事务管理或长时间运行的事务引起的.通常,您不需要备份和还原来解决此问题.备份应该足够了(因为Firebird在备份期间会进行额外的清理和垃圾收集).

Firebird(和Interbase)都使用多版本并发控制,这意味着更改将记录在新的记录版本中.只有在没有打开对该事务感兴趣的事务时,才会清除旧记录版本.由回滚事务创建的记录版本仅在扫描期间清除.

错误的事务管理(具有长时间运行的事务,或使用提交保留而不是提交),意外断开连接等可能意味着事务仍处于打开状态,这意味着它们需要由数据库清理(所谓的Firebird扫描) ).这可能会降低数据库的速度,因为它需要读取同一记录的多个版本.

如上所述,在执行备份时执行扫描.因此,只需进行备份就足以消除大部分问题.

有关更多详细信息,请查看gfix管理


Gar*_*vis 7

显而易见的,我担心相当乏味的答案是,您将不得不使用自己的工作负载对这两者进行基准测试.您的应用程序工作负载可能与其他所有基准测试或应用程序不同.