問題: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で質問しましょう!
似たような質問が見つかりました
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- PHP php エラー 2 2022/10/23 16:43
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
ACCESSで一括処理する方法
その他(データベース)
-
SQLの速度をあげるには・・・
Visual Basic(VBA)
-
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
-
4
selectした大量データをinsertしたい
MySQL
-
5
accessの処理が遅い
その他(データベース)
-
6
Excelのワークシートに行を挿入(高速化)
Visual Basic(VBA)
-
7
【Oracle】ADOでSELECT * FROM ・・・・ を実行すると処理が遅いんです
その他(データベース)
-
8
ACCESS ADOでupdateが効かない
その他(データベース)
-
9
Access サブフォームでの選択行の取得
その他(データベース)
-
10
アクセスのクエリとDlookupはどちらがより効果(効率)的か
Access(アクセス)
-
11
ODBC経由の処理が遅い
SQL Server
-
12
ACCESSでの大容量データインポート
Access(アクセス)
-
13
Access 削除クエリが重い
その他(データベース)
-
14
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
15
Access終了時の最適化が失敗?
その他(データベース)
-
16
[性能改善]AccessのDBに大量のデータをUpdateする場合の性能対策について
その他(データベース)
-
17
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
18
AccessのDAO.ExecuteとDoCmd.RunSqlの違いについて
その他(データベース)
-
19
ACCESS2007 VBA 「INSERT INTO~」について
PowerPoint(パワーポイント)
-
20
Accessの画面更新を一時的に停止する方法。
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
VIEWの元のテーブルのindexって...
-
SQLサーバから、項目の属性(型...
-
副問合せの書き方について
-
複数テーブルのGROUP BY の使い...
-
sqlで、600行あるテーブルを100...
-
上位3位を求めるSQL文は?
-
select文のwhere句に配列を入れ...
-
selectした大量データをinsert...
-
graphvizで到達矢印の位置を選...
-
テーブルが5つの時の結合の仕...
-
エクセルの関数について教えて...
-
MySQLのint型で001と表示する方...
-
HAVING count()で重複したデー...
-
順位の取得
-
SQLにて特定の文字を除いた検索...
-
insertを高速化させたい
-
min句のSQLを改造し二番目に小...
-
URL と行番号の指定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
VIEWの元のテーブルのindexって...
-
SQLサーバから、項目の属性(型...
-
select文のwhere句に配列を入れ...
-
副問合せの書き方について
-
マイクラPC版のコマンドで効率...
-
Unionした最後にGROUP BYを追加...
-
selectした大量データをinsert...
-
SQLにて特定の文字を除いた検索...
-
[SQLServer] テーブル名からカ...
-
1テーブル&複数レコードの更新...
-
inner joinをすると数がおかし...
-
クエリ表示と、ADOで抽出したレ...
-
ある条件の最大値+1を初番する...
-
sqlで、600行あるテーブルを100...
-
複数テーブルのGROUP BY の使い...
-
insertを高速化させたい
-
PL/SQLの変数について
-
キー毎の、ある列のmaxのレコー...
おすすめ情報