使用Firebird只读事务的优势是什么?我使用Firebird数据库已有七年多的时间。我从来没有使用过这个选项。我只是好奇这个特性的典型场景是什么?我正在使用Firebird 2.5.x,但如果您对Firebird 3.x (或更新版本)有有用的见解,欢迎您的意见。
发布于 2019-09-04 21:13:57
当事务生效时,您会看到数据库的一致视图-来自其他连接或会话的数据修改(删除/更新/插入)将不可见。
通常用于组合报表,在这些报表中,您可以对同一数据运行多个查询,以不同的方式显示这些数据。如果每个查询独立运行,则报告可能不会彼此一致,因为后面的查询可能会看到不同的数据。
不特定于Firebird -只读事务是一个常见的数据库短语,您可以在上面搜索以获取更多信息。
发布于 2019-09-05 15:11:11
Firebird中的只读事务使用预先提交的事务(尽管它仍然需要以COMMIT结尾)。它不能更改数据库(on commit delete rows格式的全局临时表除外),也不能锁定行或表。它确实提供了事务配置的可见性保证。
使用只读事务的好处是它保证事务不会阻塞其他事务。但是,因为Firebird中的大多数读取操作不会阻塞其他事务,所以好处不是很大。
此外,您还可以使用只读事务来验证事务不会(直接或间接)修改数据库。
发布于 2019-09-15 02:23:15
Firebird中只读事务的主要优点是这种事务不持有记录版本。因此垃圾收集器可以有效地清理它们。
此外,如上所述,只读事务永远不会阻塞其他事务。
为了提供最大的性能和最小化事务死锁的风险,应用程序应该使用短的更新事务和一个长生命的只读事务(READ COMMITTED,REC版本)用于读取数据。
https://stackoverflow.com/questions/57789008
复制相似问题