0

我需要向 ESE 数据库中添加几百万条数据记录。除其他值外,每条记录都有一个唯一的字符串值。这个值可以被认为是一个键。

记录的有趣之处在于,输入集中可能存在同一记录的多个相同实例。输入后,我只想要一个包含每个唯一字符串的记录。

我的问题是如何做到这一点 - 我怎样才能快速过滤掉重复项?

现在我只在搜索键后添加每条记录,如果条目已经存在,我会跳过它。如果它不在数据库中,我会添加记录和进度。这里最大的成本是对每个条目进行搜索。

关于使这个非常快的任何想法?无论如何要键入该值以使添加重复项会失败?

4

2 回答 2

1

您可以通过将 JET_bitIndexUnique 传递给 JetCreateIndex 来在字符串列上创建唯一索引:

JetCreateIndex(sesid, tableid, "myindex", JET_bitIndexUnique, "+string_col\0", 13, 100));

JET_errKeyDuplicate 插入重复值失败。

如果你的字符串很短,这种方法是最好的。如果您的字符串很长,您应该使用字符串的哈希来测试唯一性。

于 2011-05-14T16:35:04.120 回答
-2

**

DTS.
BULK INSERT.
SSIS.
Choose as you wish

**

于 2011-05-10T09:13:56.407 回答