
No.2ベストアンサー
- 回答日時:
この処理において、単独での処理速度にはあまり価値がありません。
というのも、処理後のすべの操作のレスポンスに重大な影響があるからです。
DBMSの実装と設定パラメータに影響しますが、
DELETEとINSERTを行うと、DELETEして空いた領域に格納されない事があります。
これを繰り返すとデータファイルが虫食いで穴だらけになります。
結果、格納効率が悪化し件数は変わらなくてもファイルだけが肥大化して物理I/Oを増加させます。
現在は知りませんが、旧ACCESSはわかりやすく大きくなっていきました。
まともな DBMS でもクラスタ化係数が悪化してキャッシュヒット率とインデックスの効果を低下させる原因になることもあります。
総じて、そこそこ件数があるテーブルに対してはUPDATEで記述した方が良いです。
この回答へのお礼
お礼日時:2005/08/16 21:44
2つの方法のどこが違うのか
よく分かっていなかったのですが、
この回答で理解できたと思います。
大変参考になりました。
ありがとうございます。
No.1
- 回答日時:
処理自体は大きな違いはありません。
強いて言えば、DELETE+INSERTの方が記録されるログの量がUPDATEに比べ多くなると考えられます。
SELECTでレコードが見つかる可能性が高いのであればUPDATEを行うのが一般的ですが、追加になるケースがはるかに多いのであればDELETE+INSERTの方がプログラムロジックがシンプルになると思います。
この回答へのお礼
お礼日時:2005/08/16 21:39
プログラムはDELETE+INSERTの方が簡単で
気に入っていたんですが、
ログの事は考えてもいなかったです。
参考になる回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLServerで同一条件レコードの...
-
Accessの重複クエリで最小以外...
-
Accessにインポートしたら並び...
-
OUTER JOIN と TOP10との組み合...
-
800万件のデータ
-
ACCESSのBookmarkプロパティの...
-
Accessでの禁止文字チェック
-
Access 削除クエリが重い
-
Accessで重複したデータを一件...
-
特定のレコードのみの更新クエリ
-
フォームからのレコード削除に...
-
データの二重表示の原因
-
Access VBA Me.Requery レコー...
-
ACCESSファイルを開こうとする...
-
「マスタ」と「テーブル」の違...
-
ACCESS2007 フォーム 「バリア...
-
請求と入金のテーブルの作成の...
-
SQLで○○の値以外を持っているレ...
-
ACCESS2000のテーブル構造
-
accessで移動平均する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessにインポートしたら並び...
-
3つ以上のテーブルをUNIONする...
-
データの二重表示の原因
-
Access VBA Me.Requery レコー...
-
Accessで重複したデータを一件...
-
access入所退所日のデータから...
-
SQLServerで同一条件レコードの...
-
ManagementStudioからのデータ削除
-
Access 1レコードずつcsvで出力...
-
Access カレントレコードがあり...
-
Access 削除クエリが重い
-
ACCESSのBookmarkプロパティの...
-
Accessの重複クエリで最小以外...
-
Accessでの排他制御
-
数百万件レコードのdelete
-
DB INSERT 時の排他制御について
-
(ACCESS)並び替えをしないで...
-
非連結サブフォームのレコード...
-
特定のレコードのみの更新クエリ
-
Accessの固有レコード識別子の選択
おすすめ情報