
問題:insertが遅い。20件程度の情報をテーブルにinsertするのに、30秒以上かかる。
環境:Windows XP, MYSQL(TABLE1のidにはindexつき)
仕様:textdata.csvを開き、idを取得する。取得したidをgetid変数に入れる。
取得したidがTABLE1に無いか調べる。idが無ければinsert。
あれば読み飛ばす。textdata.csvのidが無くなれば終わり。
con = CREATEOLEOBJ("ADODB.Connection")
//ここでCSVファイルを開き、idを取得しループさせる
getidSQL = "Select * from TABLE1 where id = '" + getid + "';"
RS = con.Execute(getidSQL)
If RS.EOF Then
//DB登録---------------------------------------------------------------------------------------
str = "INSERT INTO TABLE1 (id) values('" + getid + "');"
con.Execute(str)
//DB登録終了------------------------------------------------------------------------------------
endif
//CSVループ
ちなみに、DBにinsertせずに、かわりにテキストファイルに書き込む方法だと一瞬で挿入が完了します。
これをDBに書き込む時に高速化を図りたいのですが、何か良い方法はないでしょうか?
No.3
- 回答日時:
「id」にインデックス作成してありますか。
INSERTに時間かかっているというよりidが同一のレコード検索に時間がかかっている気がするのですが。解決策は#1さんの書かれているのが一番簡単かなと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
selectした大量データをinsertしたい
MySQL
-
SQLServer Insertが遅い
SQL Server
-
SQLの速度をあげるには・・・
Visual Basic(VBA)
-
-
4
ACCESSで一括処理する方法
その他(データベース)
-
5
ACCESSのFindコマンドが遅い
その他(プログラミング・Web制作)
-
6
Access 削除クエリが重い
その他(データベース)
-
7
アクセスのマクロ
Visual Basic(VBA)
-
8
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
9
SQLServerでNULLを挿入したいです
SQL Server
-
10
ROBOCOPY cmdで正常に処理されるがバッチファイルで動作しない
Windows 8
-
11
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
12
Accessでレコードを別テーブルへコピーするには
Access(アクセス)
-
13
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
Access パラメータクエリをcsv...
-
VIEWの元のテーブルのindexって...
-
SQL Left Join で重複を排除す...
-
select文のwhere句に配列を入れ...
-
Unionした最後にGROUP BYを追加...
-
[MySQL] 3つのテーブルの結合で...
-
WordpressのContact form 7でzi...
-
SQLにて特定の文字を除いた検索...
-
エクセルの関数について教えて...
-
LEFT JOIN と GROUP BY
-
クエリ表示と、ADOで抽出したレ...
-
【Transact-sql】 execの結果を...
-
sqlで、600行あるテーブルを100...
-
カラム名でseqとidではどちらが...
-
EXPLAINのtypeがALLのときの対...
-
NOT INをNOT EXISTSで書き直したい
-
エラー 1068 (42000): 複数の主...
-
SQLサーバから、項目の属性(型...
-
副問合せの書き方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
VIEWの元のテーブルのindexって...
-
エラー 1068 (42000): 複数の主...
-
SQLサーバから、項目の属性(型...
-
select文のwhere句に配列を入れ...
-
SQL Left Join で重複を排除す...
-
Access パラメータクエリをcsv...
-
マイクラPC版のコマンドで効率...
-
【Transact-sql】 execの結果を...
-
sqlで、600行あるテーブルを100...
-
SQLにて特定の文字を除いた検索...
-
1テーブル&複数レコードの更新...
-
PL/SQLの変数について
-
WordpressのContact form 7でzi...
-
複数テーブルのGROUP BY の使い...
-
バインド変数について
-
inner joinをすると数がおかし...
-
MySQLのint型で001と表示する方...
-
updateを1行ずつ実行したい。
おすすめ情報