質問

誰がテーブルを破壊し、新しいテーブルに多数のレコードを挿入するプロセスをスピードアップに役立つ可能性が任意のヒントを持っています。

私は現在、各文字が、自身のレコード(行)を持つ新しいテーブルに大きな文字列(700 +文字)のレコードを含むテーブルを変換するためのアクセスやVBAを使用しています。私は一度に文字列の1文字をループしてVBAでの簡単なDAOを使用して新しいテーブルに挿入することで、これをやってます。

現在、私は、データの小さなサブセットで働いている - 300は700の文字列で、それぞれが記録されます。このプロセスはとても50,000レコードの完全なデータセットにスケールアップするつもりはない実行するのに約3時間かかります!

表1構造

のid - 文字列 001 - ABCDEFG

となります。

表2構造

のid - 文字列 001 - 001 - B 001 - C 。 。 。 。 。ます。

私は物事を向上させることができ任意の提案に開いている。

乾杯

フィル

役に立ちましたか?

解決

ノースウィンドを使用してこの例を考えてみましょう。 INTEGER(アクセス=倍長整数)を有する配列と呼ばれるテーブルを作成し、値1〜20(すなわち、20行テーブル)を移入。そして、従業員の姓の各文字を解析するために、このACE /ジェットシンタックスのSQLコードを使用します:

SELECT E1.EmployeeID, E1.LastName, S1.seq, MID(E1.LastName, S1.Seq, 1)
  FROM Employees AS E1, Sequence AS S1
 WHERE S1.seq BETWEEN 1 AND LEN(E1.LastName);

他のヒント

一括挿入を行う場合、あなたは多くの場合、テーブルのインデックスを削除する一括挿入をやって、その後、インデックスを復元することによって、大幅なパフォーマンスの向上を得ることができます。あるケースでは、MySQLのテーブルにカップル万レコードを挿入するとき、私は、これは約20分まで17時間から実行時間を持って見てきました。

私は(私は15年ほど前に、アクセス2以来、それを使用していない)が、一般的な技術は、任意のデータベースエンジンほとんどに適用されます。

アクセスに関する特別助言することはできません

私たちは、データを転置ルーチンを持っています。わからないコードが最適化されたが、それはより速く、ファイルが圧縮された後に大幅に実行されている場合。

削除するとテーブルの再構築の多くを行うと、大幅に.mdbファイルをbloatsます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top