0

ESE データベースに数百万のデータ レコードを追加する必要があります。他の値の中でも、各レコードには一意の文字列値があります。この値はキーと考えることができます。

レコードにとって興味深いのは、入力セット内に同じレコードの同一のインスタンスが複数存在する可能性があることです。入力したら、一意の文字列のそれぞれを持つ 1 つのレコードのみが必要です。

私の質問は、これを行う方法です-重複をすばやく除外するにはどうすればよいですか?

現在、キーの検索を行った後にのみ各レコードを追加しています。エントリが既に存在する場合はスキップします。データベースにない場合は、レコードを追加して進行します。ここでの大きなコストは、各エントリで検索を行うことです。

これを非常に高速にするためのアイデアはありますか?重複の追加が失敗するように値をキー設定する方法はありますか?

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 に答える