これはSQLデータベースと見なされます。
問題は、一度に1つのアイテムを実行している可能性があります。 SQLはそれを嫌っている。 SQLおよびSQLデータベースは、の項目のを設定して動作します。
したがって、トランザクションを開いて1,000個のアイテムを読み込んで挿入します。トランザクションコミットが何らかの理由で失敗した場合に備えて、再試行できるようにこれらのアイテムを保存します。
私はこのテクニックを使って20倍以上のあなたの説明と似たような仕事をするいくつかのPerlスクリプトをスピードアップすることができました。
私は使用しているMicrosoftライブラリがわかりませんが、ここにはDBIを使用したPerlのサンプルがあります。 AutoCommit => 0と$ dbh-> commitのように動作するようになっています。
#!/usr/bin/perl
use strict;
use DBI;
my $dbname = 'urls';
my $user = 'postgres';
my $pass = '';
my $dbh = DBI->connect(
"DBI:Pg:dbname=$dbname",
$user,
$pass,
{ 'RaiseError' => 1, AutoCommit => 0 }
);
my $insert = $dbh->prepare('
INSERT INTO todo (domain, path)
VALUES (?, ?)
');
my $count = 0;
while(<>) {
if($count++ % 1000 == 0) {
$dbh->commit;
}
chomp;
my ($one, $two) = split;
$insert->execute($one, $two);
}
$dbh->commit;
$dbh->disconnect;
あなたはアイテムのセットでやる方法の詳細を教えてくれますか?チュートリアルや例が素晴らしいでしょう。ところで、私はMicrosoftエンタープライズライブラリを使用してデータを挿入しています。感謝。 – Jack