SQL查询优化:集合与迭代解决方案及查询修订策略
在数据库查询优化的领域中,我们常常会面临多种选择,比如是采用集合式解决方案还是迭代式解决方案,以及如何通过查询修订来优化查询性能。下面将详细探讨这些内容。
1. 触发器中的回滚与数据保存
在某些情况下,我们可能需要在触发器中执行回滚操作,但同时又要保存 inserted 和 deleted 表中的信息。因为直接回滚会使这些表中的数据消失,而先复制数据到目标表再回滚,复制操作也会被撤销。解决方案是在回滚之前,将 inserted 和 deleted 表的数据复制到表变量中,回滚之后再将表变量中的数据复制到目标表。
2. 集合式与迭代式解决方案
当解决查询任务时,人们常常会纠结于使用集合式方法还是迭代式方法。以下是两者的详细对比:
- 集合式解决方案 :基于数学集合理论,将输入表作为一个整体进行操作,不依赖数据的物理顺序,可通过 T-SQL 查询实现,无需迭代。
- 迭代式解决方案 :一次处理一行数据,依赖数据的顺序,可使用游标机制或带有 TOP (1) 查询的循环来实现。
通常,我们更倾向于使用集合式方法,原因主要有两点:
- 哲学层面 :基于强大数学基础的方法可能会产生更稳定、健壮的解决方案,关系模型能长久存在可能就是因为其数学基础坚实。
- 实用层面
超级会员免费看
订阅专栏 解锁全文
1029

被折叠的 条评论
为什么被折叠?



