[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 メーリングリストの案内