[Seasar-user:20924] Re: outsideSqlで複数インサート文を一括で実行したい

kubo [E-MAIL ADDRESS DELETED]
2011年 7月 29日 (金) 01:39:42 JST


久保(jflute)です。

>> テーブルはシステムで自動生成(create table)したので、事前にテーブル操作用クラスが用意できないです。

iafandaさんの言っていることが理解できたかもしれません。

「テーブルはシステムで自動生成」
つまり、システムの稼働中に create table を実行して
テーブルが作成される、という意味ですね?

「事前にテーブル操作用クラスが用意できないです。」
つまり、DBFluteの自動生成時にはテーブルはまだ存在しないので、
Behavior や Entity をDBFluteで自動生成できない、という意味ですね?

ということで、Behavior の batchInsert() が利用できないので、
外だしSQL(outsideSql) でそれと同じような速度向上のための
機能がないかどうか?ということですね。

すいません、先ほどのメールの時点では、
これがよく理解できていませんでした。

システムで自動生成の構造は固定的なのでしょうか?
もしそうであれば、DBFluteの自動生成時にダミーで
そのテーブルを用意しておいて、システムでテーブルが
作成されてから、Behavior で batchInsert() するというのも
できるかもしれません。

もし、システムで自動生成の構造が変動的なのであれば、
どのみち外だしSQL(outsideSql)でもinsert文を書くのは
難しいような気がします。


2011/7/29 kubo <[E-MAIL ADDRESS DELETED]>:
> 久保(jflute)です。
>
> iafandaさん、こんばんは
>
>> csvデータ導入機能、データ量が多いので、処理速度を上げたいです。
>> outsideSqlにinsert into 文を書いて、複数インサート文を一括実行する(batchInsertみたいな)ことはできますか?
>
> 「複数インサート文」というのは具体的にどのようなSQLを示すのでしょうか?
>
> 処理速度を上げたいのであれば、outsideSql で insert 文 (一レコード分) を書いて、
> 「batchInsertみたいな」ことを実行しても、あまり速度は変わらないと思います。
> (もともと batchInsert 自体がDBFluteの中では速度重視の機能です)
>
> 例えば、データ量は具体的にどのくらいの量なのでしょうか?
> (10000件とか1000000件とか)
> 量によっては、そもそも MySQL の Load Data や、
> SQLServer の Bulk Insert を検討した方が良いかもしれません。
>
> 2011/7/29  <[E-MAIL ADDRESS DELETED]>:
>> 久保さんへ
>> iafandaです
>> いつもお世話になっております。
>> dbfluteの機能について聞きたいです。
>> テーブルはシステムで自動生成(create table)したので、事前にテーブル操作用クラスが用意できないです。
>> 以下のように一括データインサートできないです。
>> int[] result = memberBhv.batchInsert(memberList);
>>
>> csvデータ導入機能、データ量が多いので、処理速度を上げたいです。
>> outsideSqlにinsert into 文を書いて、複数インサート文を一括実行する(batchInsertみたいな)ことはできますか?
>> 教えてください。
>> よろしくお願いします。
>>
>>
>>
>>
>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
>>
>


Seasar-user メーリングリストの案内