![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
問題: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も見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
ACCESSで一括処理する方法
その他(データベース)
-
selectした大量データをinsertしたい
MySQL
-
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
-
4
SQLの速度をあげるには・・・
Visual Basic(VBA)
-
5
Excelのワークシートに行を挿入(高速化)
Visual Basic(VBA)
-
6
Access サブフォームでの選択行の取得
その他(データベース)
-
7
accessの処理が遅い
その他(データベース)
-
8
アクセスのクエリとDlookupはどちらがより効果(効率)的か
Access(アクセス)
-
9
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
10
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
11
AccessのDAO.ExecuteとDoCmd.RunSqlの違いについて
その他(データベース)
-
12
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
13
【Oracle】ADOでSELECT * FROM ・・・・ を実行すると処理が遅いんです
その他(データベース)
-
14
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
15
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
16
フォームウィンドウを最前面に表示したい(ACCESS)
Microsoft ASP
-
17
ODBCリンクの際にACCESSでは読み取り専用にしたい!
Oracle
-
18
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
19
Access→Oracleデータ参照にはADOとパススルークエリどちらが良い?
その他(データベース)
-
20
ACCESS ADOでupdateが効かない
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エラー 1068 (42000): 複数の主...
-
Mysql UPDATE出来ません
-
select文のwhere句に配列を入れ...
-
SQLについての質問
-
副問合せの書き方について
-
LEFT JOINが2つあるSQL文でAND...
-
mysqlで変数を使う方法
-
【初心者】特定の文字に色をつ...
-
エクセルの関数について教えて...
-
期間の重複を調べるSQL文につい...
-
ローカルルーターモードとは
-
PL/SQLの変数について
-
SQLサーバから、項目の属性(型...
-
SQLにて特定の文字を除いた検索...
-
group by 関数で表示するカラム...
-
閉包テーブルのノードの移行に...
-
Unionした最後にGROUP BYを追加...
-
sqlで、600行あるテーブルを100...
-
カンマ区切りの文字列を検索する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
SQLサーバから、項目の属性(型...
-
副問合せの書き方について
-
VIEWの元のテーブルのindexって...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
select文のwhere句に配列を入れ...
-
sqlで、600行あるテーブルを100...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
Unionした最後にGROUP BYを追加...
-
期間の重複を調べるSQL文につい...
-
クエリ表示と、ADOで抽出したレ...
-
Access パラメータクエリをcsv...
-
PL/SQLの変数について
-
MySQLのDATE型カラム値がNULLの...
-
php+mysqlで複数選択削除について
-
上位3位を求めるSQL文は?
おすすめ情報