ETL 策略:身份插入与使用身份逻辑
我的一个 ETL 将大约 1800 万行从一台服务器移动到另一台服务器以进行进一步处理。我正在使用FAST LOAD
选项。
对于 Identity Column,我有两个选择:
- 使用 IDENTITY INSERT
- 不要为 Identity Column 设置任何输入,从而强制 SQL Server 为插入的每一行生成新的 IDENTITY Identity
列的值不要紧。
我应该选择哪个选项才能获得最佳性能?
One of my ETL moves about 18 Million rows from one server to another for further processing. I am using the FAST LOAD
option.
For the Identity Column, I have two options:
- Use
IDENTITY INSERT
- Don't set any input for the Identity Column, thereby forcing SQL Server to generate a new IDENTITY for each row inserted
The value of the Identity column does not matter.
Which option should I choose for the best performance?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据您告诉我们的情况,标识列的值并不重要,您没有理由让它与原始表的值一致,我会选择第二个选项。您可以使用 SQL Server 设置标识值的自然方法,消除值中的间隙,并且键将根据您插入它们时选择的顺序升序。
Based on what you've told us, the value of the identity column doesn't matter and you have no reason for it to agree with the original table's value, I would choose the second option. There you are using SQL Server's natural method of setting identity values, you eliminate gaps in the values and the key will be ascending based on the order you choose when you insert them.