我有大约 150 万个文件需要在数据库中插入记录。每条记录都插入一个包含文件名的键。
问题:这些文件目前没有唯一标识。
所以,我们想做的是,对于每个文件:
- 插入一条记录。记录中的一个字段应包括一个亚马逊 S3 密钥,该密钥应包括新插入记录的 ID。
- 重命名文件以包含 ID,使其与密钥的格式匹配。
我能想到的最好的事情是:
- 运行返回添加行的 ID 的单个插入命令。
- 将其作为属性添加回我正在循环的单个业务对象。
- 生成更新 S3 密钥以包含 ID 的更新语句
- 输出文件,将ID连接到文件名的末尾。
据我所知,这看起来是:
- 150 万条插入语句
- 单独的 SqlCommand 执行和读取,因为我们需要返回 ID),
- 150 万次在对象上设置属性。
- 生成并执行了 150 万条更新语句
- 也许可以把它变成一个巨大的连接更新语句来一次完成它们;不确定这是否有帮助
- 150 万份文件副本。
我无法绕过实际的文件部分,但对于其余部分,是否有更好的策略我没有看到?