火鸟2.0事务选择性能
-
10-07-2019 - |
题
在火鸟2.0,使用明确的交易更快的一个选择的命令于执行该命令有一个隐含的一个吗?
解决方案
所有SQL命令(SELECT,INSERT,UPDATE等)只能在某些事务中执行。您无法在事先启动事务的情况下运行命令。
其他提示
显性和隐性交易是一个功能组件的设置将用于访问的数据库,没有一个特点火鸟本身。如前所述,火鸟 总是 不内的一切交易。这一对夫妇的影响:
- 使用"隐含"交易不能以更快的速度,然后使用"明确"交易,因为从火鸟的角度来看,一个交易的交易,不论谁开始的。
- 得到最好业绩有时需要精确地控制"提交".虽然"隐含"交易不能以更快的速度随后的"明确的"交易中,明确可能速度更快,因为你可以控制你的StartTransactions和提交。虽然你通常要做的所有更新数据库内的一个交易(使他们都成功或失败作为一组)有时候你想要分割作为多个组:如果你需要的大容量插入许多多的记录,你可能要提交一个每1000记录。
Firebird无法在没有事务的情况下执行SQL命令。
PS:如果提交事务而不是回滚事务,则会获得最佳性能结果。即使你只调用了SELECT而没有改变任何内容。
除了已经说过,考虑到交易可以是:
- 读写
- 只读的
对于选择最好要采用只读事务
PS:还有其他类型的交易,但这两个重要的对这一主题。
通常,事务会增加一些开销。但是,如果在连接到Firebird时没有启动某些默认事务,则应该小心。
根据我的经验,隐式事务往往默认为自动提交保留,因此它们应该更慢。您始终可以更改默认行为。
但是我建议使用显式事务,因为如果它阻止了太多的事务,提交保留可能会让你更加悲伤。如果确实如此,那么当Firebird遍历所有保持/阻止的事务以确定数据的正确值时,对Firebird的访问可能会显着减慢。
以下是对它的一些讨论
不隶属于 StackOverflow