这是我的情况。有一个包含大约一百万条记录的导入表。我需要根据每条记录中的内容对此表和其他表执行大量更新、插入等。
我可以使用一些基于集合的 SQL 语句来做到这一点。但是,DBA 不希望我使用这种方法,因为很多操作都涉及到经常使用的表,并且他们不希望我一次锁定很多记录。
但是我不想逐行使用光标方法。
我想一次测试一批一百行,如下所示:
向导入的表添加一个 batch_number 字段,并使用每 100 行递增的整数填充它。
然后从 1 到 max batch_number 循环。在那个循环中,我将使用基于 SQL 集合的 ETL 方法,并在每个语句中添加一个 WHERE 子句:WHERE batch_number = loop-number。
这是一种合理的方法还是有更好的替代方法?