[Seasar-user:21768] Re: 【Doma】SQLiteでのトランザクション処理について

Yuta Kaga [E-MAIL ADDRESS DELETED]
2013年 12月 3日 (火) 16:03:27 JST


中村さん

加賀です。

早期のご回答ありがとうございます。
Domaの仕様の件、了解致しました。

また、条件は一例ですが約150万件のビックデータに対して
InsertやSelectを行う場合です。

Insertに関してはトランザクションを行わないと約3時間
かかりましたが、トランザクションを入れると約1時間となりました。
Selectについてはトランザクションを行わない場合は約2分、
トランザクションを行うと約6分かかっておりました。

およそ3倍くらいの性能差はあるかと思います。
ご参考までに。

(2013/12/03 15:13), Toshihiro Nakamura wrote:
> 中村(taedium)です。
>
>> しかし、実装してみますとSelect時にbegin〜rollbackまでの
>> 処理を記述しないと、Doma側でトランザクションを
>> していないという内容のExceptionが発生してしまいます。
>>
>> 私のアプローチの仕方が間違っているのか、それとも
>> Domaの仕様なのかが判断がつきませんでしたので
>> メーリングリストに投稿致しました。
> これはDomaの仕様です。
>
>> SQLiteは、Select時にトランザクションすると
>> 実行速度が遅くなり、逆にInsert時はトランザクションを
>> しなければ、処理実行時間が遅くなってしまいます。
> 参考までに教えていただけるとうれしいのですが、
> どういった条件下でどの程度の差が出るのでしょうか?
>
>
> On Tue, 3 Dec 2013 14:09:29 +0900
> Yuta Kaga <kaga_yt @ es-planning.jp> wrote:
>
>> 初めて投稿させていただきます。
>> 加賀と申します。
>>
>> よろしくお願いします。
>>
>> 現在、DomaとSQLiteを利用して開発を行っております。
>>
>> リファレンスのトランザクションの項目を参考に
>> LocalTransactionalDataSourceを使い
>> トランザクション処理を行っております。
>>
>> SQLiteは、Select時にトランザクションすると
>> 実行速度が遅くなり、逆にInsert時はトランザクションを
>> しなければ、処理実行時間が遅くなってしまいます。
>>
>> しかし、実装してみますとSelect時にbegin〜rollbackまでの
>> 処理を記述しないと、Doma側でトランザクションを
>> していないという内容のExceptionが発生してしまいます。
>>
>> 私のアプローチの仕方が間違っているのか、それとも
>> Domaの仕様なのかが判断がつきませんでしたので
>> メーリングリストに投稿致しました。
>>
>> どなたか本件についてご教授願えないでしょうか。
>> よろしくお願い致します。
>>
>> --
>> 加賀 雄太
>> kaga_yt @ es-planning.jp



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