我每天都会收到大量的经常账户号码,并将它们存储在数据库中。我的任务是从每个文件中查找添加和释放的帐户。现在,我有4个SQL表(AccountsCurrent、AccountsNew、AccountsAdded、AccountsRemoved)当我收到一个文件时,我将它完全添加到AccountsNew中然后运行下面的查询来查找我们添加和删除的内容。
INSERT AccountsAdded(AccountNum, Name) SELECT AccountNum, Name FROM AccountsNew WHERE AccountNumber not in (SELECT AccountNum FROM AccountsCurrent)
INSERT AccountsRemoved(AccountNum, Name) SELECT AccountNum, Name FROM AccountsCurrent WHERE AccountNumber not in (SELECT AccountNum FROM AccountsNew)
TRUNCATE TABLE AccountsCurrent
INSERT AccountsCurrent(AccountNum, Name) SELECT AccountNum, Name FROM AccountsNew
TRUNCATE TABLE AccountsNew
现在,我正在区分大约250000个账户,但这将继续增长。这是最好的方法吗,你还有别的想法吗?
编辑:
这是一个MSSQL 2000数据库。我在用C来处理文件。
我关注的唯一数据是在上一个和当前文件之间添加和删除的帐户。AccountsCurrent,仅用于确定添加或删除了哪些帐户。
最佳答案
老实说,我想我会遵循你的方法。一件事是,可以删除截断,将“new”重命名为“current”,然后重新创建“new”。
关于c# - 区别大数据列表的最佳方法,算法和方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/461685/