要选择与数百个 ID 列表相关的信息...而不是做一个巨大的选择语句,我创建临时表,将 ID 插入其中,将其与表连接以选择与 ID 匹配的行,然后删除临时表桌子。所以这本质上是一个读取操作,不会对任何持久性数据库表进行永久性更改。
我在事务中执行此操作,以确保完成后删除临时表。我的问题是......当我提交这样的事务与让它回滚时会发生什么?
性能方面......数据库引擎是否需要做更多的工作来回滚事务而不是提交事务?由于唯一的修改是对临时表进行的,因此甚至有区别吗?
这里的相关问题,但没有回答我涉及临时表的具体案例:我应该提交还是回滚读取事务?
编辑(澄清问题):
在提交/回滚之前不寻求建议。交易是绝对必要的。假设没有错误发生。假设我已经创建了一个临时表,假设我知道发生了对 tempdb 的真正“工作”写入,假设我在事务中执行只读(选择)操作,并假设我在临时表上发出了删除语句。毕竟......哪个更便宜,提交或回滚,为什么?基于这种涉及临时表和其他只读操作的特定场景,数据库引擎在那个点可能为提交与回滚做哪些其他工作?