为了选择与数百个ID相关的信息,我创建了一个临时表,将这些ID插入其中,将其与另一个表连接以选择匹配ID的行,然后删除临时表,而不是使用一条巨大的select语句。因此,这基本上是一个读取操作,没有对任何持久性数据库表进行永久更改。
我在事务中执行此操作,以确保完成后删除临时表。我的问题是...当我提交这样的事务时会发生什么,相对于让它回滚呢?
就性能而言...相对于提交事务,DB引擎是否需要做更多的工作来回滚事务?是否有区别,因为唯一的修改是针对临时表进行的?
这里有一个相关的问题,但没有回答我涉及临时表的具体情况:Should I commit or rollback a read transaction? 编辑(问题澄清):
不寻求在提交/回滚之前的建议。事务绝对必要。假设没有出现错误。假设我已经创建了一个临时表,假设我知道实际的写入tempdb的“工作”,假设我在事务中执行只读(select)操作,并假设我发布了一个删除语句来删除临时表。在所有这些之后...提交或回滚哪个更便宜,为什么?基于涉及临时表和其他只读操作的特定情况,DB引擎在这个时候可能会做什么其他工作,以区分提交和回滚?
我在事务中执行此操作,以确保完成后删除临时表。我的问题是...当我提交这样的事务时会发生什么,相对于让它回滚呢?
就性能而言...相对于提交事务,DB引擎是否需要做更多的工作来回滚事务?是否有区别,因为唯一的修改是针对临时表进行的?
这里有一个相关的问题,但没有回答我涉及临时表的具体情况:Should I commit or rollback a read transaction? 编辑(问题澄清):
不寻求在提交/回滚之前的建议。事务绝对必要。假设没有出现错误。假设我已经创建了一个临时表,假设我知道实际的写入tempdb的“工作”,假设我在事务中执行只读(select)操作,并假设我发布了一个删除语句来删除临时表。在所有这些之后...提交或回滚哪个更便宜,为什么?基于涉及临时表和其他只读操作的特定情况,DB引擎在这个时候可能会做什么其他工作,以区分提交和回滚?