• ベストアンサー

SQLServer2000SP4の処理速度について

お世話になります。 現在VB.NETよりOLEDBを使用してSQLServerに レコード登録(バッチ処理)を行っているのですが 約2万3千件のレコードを登録(1レコード1コミット) するのに6時間くらいかかってしまいます。 (1レコード500BYT) 1時間で1万件の登録は行えるのですが、だんだん 1レコードあたりの登録時間が長くなっていきます。 DB登録の前に存在チェックを行っていますが、検索条件は KEY項目指定です。 SQLサーバーの設定はデフォルトのままで、 FREE BUFFERやメモリ等に問題はみられませんでした。 他に考えられる原因をご存知の方がいらっしゃれば ご教授願います。 宜しくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.2

テーブルにインデクスを付けているのであれば、それが原因です。レコードの登録に伴うインデクスの更新は、既登録レコード数が多いほど長い時間が掛かります。

その他の回答 (2)

  • kikaida-
  • ベストアンサー率69% (37/53)
回答No.3

1件ずつやるから遅いんだと思います。 存在チェックも含めて全体で一括処理できませんか。 テキストを読みこんで登録する処理ならば、一旦BCPでワークに入れてからやってみてください。

  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.1

まずはボトルネックを調査することが先決ですが、 主キーやインデックスを設定していたなら更新前に一旦削除しておいて、更新後に再作成をするようにしてみては如何でしょうか?

関連するQ&A