C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Access VBA 2010 Insert Select


(過去ログ 117 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■68749 / inTopicNo.1)  Access VBA 2010 Insert Select
  
□投稿者/ ante (3回)-(2013/11/11(Mon) 16:49:54)

分類:[Microsoft Office 全般] 

Access VBA 2010 Insert Select 時のレスポンスについて

Access VBA 2010

お世話になります。
下記のようなクエリでパフォーマンスがよろしくなく、困っております。

Selectで時間は掛かっておらず、Insert時に時間がかかっているように思えます。
ちなみに、Select処理1秒で Insert処理 5秒くらいです。

この5秒を短くしたいです。

ちなみにIndexは何も貼っていません。

Insert Select時のパフォーマンスを上げる方法って
どのような手法が考えられますでしょうか。

TABLE01:50,000件
TABLE02:〃
TABLE03:20件

上記3テーブルはいずれも別ファイルAccessのリンクテーブルです。

INSERT INTO WK_TABLE ( 
        COL01
      , COL02
      , COL03
      , COL04
      , COL05
      , COL06
      , COL07
      , COL08
      , COL09
      , COL10
      , COL11
      , COL12
      , COL13
      , COL14
      , COL15
      , COL16
      , COL17
      , COL18
      , COL19
      , INSUSERID
      , INSDT
      , UPDUSERID
      , UPDDT
)
SELECT
        TABLE01.COL01
      , TABLE01.COL02
      , TABLE01.COL03
      , TABLE01.COL04
      , TABLE01.COL04
      , TABLE01.COL05
      , CCUR(NZ(TABLE01.COL06,0))
      , CCUR(NZ(TABLE01.COL07,0))
      , CCUR(NZ(TABLE01.COL08,0))
      , TABLE01.COL09
      , TABLE01.COL10
      , TABLE02.SNP
      , TABLE02.L_CM
      , TABLE02.W_CM
      , TABLE02.H_CM
      , CCUR(NZ(TABLE02.PART_KG,0))
      , CCUR(NZ(TABLE02.BOX_WKG,0))
      , CCUR(NZ(TABLE02.TOTAL_W,0))
      , TABLE03.PLACECD
      , TABLE01.INSUSERID
      , TABLE01.INSDT
      , TABLE01.UPDUSERID
      , TABLE01.UPDDT
FROM
        (TABLE01
      LEFT JOIN
        TABLE02
        ON (TABLE01.COL01 = TABLE02.COL01)
       AND (TABLE01.COL02 = TABLE03.COL02))
      LEFT JOIN
        TABLE03
        ON TABLE02.COL02 = TABLE03.COL02

よろしくお願いいたします。

引用返信 編集キー/
■68750 / inTopicNo.2)  Re[1]: Access VBA 2010 Insert Select
□投稿者/ shu (421回)-(2013/11/11(Mon) 17:04:06)
No68749 (ante さん) に返信

トランザクションがかかるので
大量のデータのInsertは時間が掛かります。
Selectするデータを条件で分割して数回にわけて行うと改善される可能性があります。
Table01にうまく分割が出来るような項目がないと駄目ですが。
引用返信 編集キー/
■68761 / inTopicNo.3)  Re[2]: Access VBA 2010 Insert Select
□投稿者/ ante (5回)-(2013/11/12(Tue) 16:01:21)
No68750 (shu さん) に返信
> ■No68749 (ante さん) に返信
>
> トランザクションがかかるので
> 大量のデータのInsertは時間が掛かります。
> Selectするデータを条件で分割して数回にわけて行うと改善される可能性があります。
> Table01にうまく分割が出来るような項目がないと駄目ですが。


やはり分割するしかないですよね><

DAOでも試しましたがあまり変わりませんでした…

この件はいったん保留にして別の方法で逃げられるか、検討してみます。

ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -