如何使用一些重复项快速添加许多记录到可扩展存储引擎

时间:2011-05-10 05:09:43

标签: database winapi extensible-storage-engine

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

对记录感兴趣的是输入集中可能存在多个相同记录的相同实例。输入后,我只想要一条带有每个唯一字符串的记录。

我的问题是如何做到这一点 - 如何快速筛选出重复项?

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

任何关于快速制作这个的想法?无论如何要键入值,以便添加副本会失败?

2 个答案:

答案 0 :(得分:1)

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

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

使用JET_errKeyDuplicate插入重复值失败。

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

答案 1 :(得分:-2)

**

DTS.
BULK INSERT.
SSIS.
Choose as you wish

**