我的应用程序需要批处理 10M 行,这是连接表的复杂 SQL 查询的结果。
我将计划迭代一个结果集,每次迭代读取一百个。
为了在繁忙的 OLTP 生产数据库上运行它并避免锁定,我想我将使用READ UNCOMMITTED 隔离级别进行查询。
这会使查询不受任何数据库写入的影响吗?避免任何行/表锁?
我主要关心的是我的查询阻塞了任何其他数据库活动,我不太关心其他方式。
旁注:
1. 我将阅读历史数据,所以我不太可能遇到未提交的数据。如果我这样做也没关系。
2. 迭代过程可能需要数小时。数据库连接将在此过程中保持打开状态。
3. 我最多有两个这样的并发批处理实例。
4. 我可以容忍重复行。(通过读取未提交的产品)。
5. DB2 是目标数据库,但我也想要一个适合其他数据库供应商的解决方案。
6. 快照隔离级别能帮我清理服务器内存吗?