我们有很多|
(管道)分隔的平面文件,我们每天在SQL Server中使用SSIS包处理它们。每个平面文件分为标题部分,内容部分和页脚部分。我们经常会获得相同文件的更新版本。我们正在尝试在同一文件的两个版本之间实现文件比较功能,以减少处理负担。
哪种方法会更有效率?
将同一文件的两个版本存储到具有校验和列的单独SQL Server表中,并过滤掉校验和值不匹配的行。
在C#或C#中提供的任何其他比较算法中实现类似的校验和逻辑。
您可以建议任何其他新算法来实现相同目的。
答案 0 :(得分:0)
好吧,如果你已经将这两个加载到SQL Server中,那么快速的方法是使用EXCEPT()
or INTERSECT()
,具体取决于你的目标。
select * from version2
except
select * from version1
这将返回version2
中与version1
中的行不完全匹配的行。如果要比较,也可以只选择一列。