
問題: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も見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
ACCESSで一括処理する方法
その他(データベース)
-
selectした大量データをinsertしたい
MySQL
-
SQLの速度をあげるには・・・
Visual Basic(VBA)
-
4
[性能改善]AccessのDBに大量のデータをUpdateする場合の性能対策について
その他(データベース)
-
5
SQLServer Insertが遅い
SQL Server
-
6
フォームウィンドウを最前面に表示したい(ACCESS)
Microsoft ASP
-
7
Excelのワークシートに行を挿入(高速化)
Visual Basic(VBA)
-
8
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
9
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
10
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
11
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
12
ACCESSのVBAにてExcelのシートをコピーしたい
その他(データベース)
-
13
Access サブフォームでの選択行の取得
その他(データベース)
-
14
エラー(型が一致しません。)の対処方法
Visual Basic(VBA)
-
15
accessの処理が遅い
その他(データベース)
-
16
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
17
更新不可能なクエリに対して更新クエリを実行する方法
Access(アクセス)
-
18
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
19
ウォッチ式の文字数制限について
Visual Basic(VBA)
-
20
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
複数のテーブルの重複データを...
-
5
Unionした最後にGROUP BYを追加...
-
6
ある条件の最大値+1を初番する...
-
7
selectした大量データをinsert...
-
8
SQL Left Join で重複を排除す...
-
9
複数テーブルのGROUP BY の使い...
-
10
MySQLでのEXCEPTについて
-
11
複数JOINしているとCOUNTが正し...
-
12
複数テーブルの削除
-
13
inner joinをすると数がおかし...
-
14
insertを高速化させたい
-
15
Access パラメータクエリをcsv...
-
16
DBNullの使い方。
-
17
1テーブル&複数レコードの更新...
-
18
【Transact-sql】 execの結果を...
-
19
mysqlのdeleteのサブクエリーで...
-
20
全角文字を含む行を検索
おすすめ情報
公式facebook
公式twitter