あるマスタデータと明細データがありキーとなる列が2つ(2列)あります
マスタデータのテーブルのキー列のA列、B列を主キーとして定義し
明細データのテーブルのキー列のA列は重複ありのインデックス
B列も重複ありのインデックスとしてそれぞれ設定しています
その2つのキーをクエリで結合して更新する更新クエリを作成しているのですが
データ量が多くなってくると非常に反応が遅くなります
同じデータ量で
2つのキー列の値をあるひとつの列に結合した値を格納しその結合列で
更新クエリを作成したところ高速に処理が動作しましたので
複合キーだった場合の処理速度が遅いのだと推測しました
(※C列にA列 & B列 の結合した値を格納してC列をキーにするという事です)
accessで複合キーの更新クエリを作成する場合、高速に動作させるには
なにか工夫が必要なのでしょうか?
アドバイス下さい
上記のように複数のキーをひとつの列に結合する工夫で早くはなったのですが・・・
余分なデータを格納する事になるので非常に容量が大きくなってしまう問題があります
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
明細データのテーブルのキー列のA列は重複ありのインデックス⇒idx1
B列も重複ありのインデックス⇒idx2
とすると、
A=3 and B=7
の条件を求めるときは、idx1かidx2のどちらかしか使えません。
idx1 を使ってA=3 が1000件、もしくは、idx2を使って、B=7が600件とでてきても
A=3 and B=7 の3件を探すには、
1000件なり、600件なりを1件ずつ調べることになるので。
極端にいうとインデックスを両方とも使っていないかもしれません。
(パラレル処理できるDB&HWの組み合わせなら知りませんが、
一般的にはどのDBでも同じです。)
インデックスを使った処理をしようと思えば、A列、B列を指定した重複ありのインデックスを
作るほうがいいです。
でも、設計の話をすると、一般には、
>マスタデータのテーブルのキー列のA列、B列を主キーとして定義し
なら、
明細データのテーブルのキー列のA列、B列、連番を主キーとして定義するように思うのですが。
## 余計な話に流れてしまいましたが。
No.1
- 回答日時:
実際にどれくらいの効果があるか不明ですが、
複数フィールドにインデックスを作成してみては?
http://www.officepro.jp/access/table/index13.html
http://office.microsoft.com/ja-jp/access-help/HA …
失礼。
更新クエリでしたね。かえって遅くなりそうです。
ならば、WHERE条件で絞り込みは出来ないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UPDATE文のWHERE条件に他のテー...
-
列のヘッダーを含めるのをデフ...
-
外部参照してるキーを主キーに...
-
Access:クエリーにて集計後に...
-
SQLで列名を変数にできないでし...
-
テーブル列数とデータファイル...
-
SELECT 文 GROUP での1件目を...
-
SQLによる"あいうえお"順でソー...
-
列番号による項目の取得について
-
項目名に大文字と小文字の混在...
-
DB2のSQL
-
IDENTITY列の更新で失敗する
-
SQLです教えてくださいお願いし...
-
【VB.NET】日付型の列にNULLを...
-
[ASP+SQLserver]列名から列番号...
-
差し込み後、元データを変更し...
-
英語ができる方、問題をお願い...
-
マイクラPC版のコマンドで効率...
-
エクセルで最後の文字だけ置き...
-
フィルターかけた後、重複を除...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
外部参照してるキーを主キーに...
-
SELECT 文 GROUP での1件目を...
-
SQLで列名を変数にできないでし...
-
列のヘッダーを含めるのをデフ...
-
Access:クエリーにて集計後に...
-
UPDATE文のWHERE条件に他のテー...
-
列番号による項目の取得について
-
【VB.NET】日付型の列にNULLを...
-
特定の列だけをGROUP BYしたい時
-
テーブル列数とデータファイル...
-
SQLによる"あいうえお"順でソー...
-
複数列の最大値を求めたい
-
v$processのPROGRAM列に関する質問
-
項目名に大文字と小文字の混在...
-
特定の文字列で列を区切るには?
-
Accessでの全データから空白削除
-
”+”の符号をつける方法
-
IDENTITY列の更新で失敗する
-
ALTER TABLE文の書き方について
-
SQLでn番目からm番目を取得したい
おすすめ情報