ページングでカウント検索を先に後に?デフォルトは...

閲覧: 38 回
最初の未読メッセージにスキップ

jflute

未読、
2011/07/20 10:41:552011/07/20
To: DBFluteユーザの集い
jfluteです。

みなさまに相談です。

ページングのカウント検索(総レコード数取得)ですが、
現状の DBFlute では「ページング実データ取得より先に」
実行されます。

ただ、厳密には以下のページの通り、

// DBアクセス - ページング検索 - ページング処理の順序 | DBFlute
http://dbflute.sandbox.seasar.org/ja/manual/topic/programming/dbaccess/pagingselect.html#processorder

カウント検索が後の方がパフォーマンス的に優位な場面が
多いかなぁと。単に実績という安全を追ってデフォルトを
そのように(そのままに)しています。

そもそもカウント検索を後にするオプション(CountLater)は、
このDBFluteユーザの集いで awaawa さんが要望として
あげてくれたことがきっかけで実装したものです。
そう言う意味では、カウント検索を後にするオプションは、
少なくとも一案件で実績があると言える段階です。
(その一案件がどの程度濃密なのかどうかは不明)

Exampleの単体テストのレベルでは、CountLater はテスト
されています。dbflute-mysql-example ではデフォルトに
しているので全てのテストが CountLater に。

という状況ですが、
いつかはデフォルトを CountLater の方にしてもいいかなと
考えています。やはりカウント検索、ページング実データ検索
と二回SQLを発行するので、しないで済むならとそうしたいと。
ただ、やるにしても他の大きな修正のないバージョンでやります。

急ぐ話ではありませんが、一応こんなこと悩んでるので、
何かコメントあればお願いします。

kubo

未読、
2011/07/20 11:27:492011/07/20
To: DBFluteユーザの集い
jfluteです。

書き忘れました。

いずれにせよ、DBFluteプロパティ (dfprop) の設定で、
デフォルトをどっちにするかを選択できるようにはします。

なので、デフォルトの挙動を変えたとしても、
もとの挙動に戻すのは簡単です。

2011/7/20 jflute <dbf...@gmail.com>:

> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
> このグループから退会するには、dbflute+u...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/dbflute?hl=ja からこのグループにアクセスしてください。
>
>

awaawa

未読、
2011/07/20 13:06:552011/07/20
To: DBFluteユーザの集い
awaawaです。

「DBFluteユーザの集い」ではなくて、jfluteさんのブログコメントですね。
http://d.hatena.ne.jp/jflute/20090516#c1243357402
懐かしいー

カウント検索を後にするオプションを使った案件が
どの程度濃密かは、お客様のシステムなので、具体的に示すことができませんが、そこそこかと。

この対応は、メチャ助かりました。
ユーザが実務上検索する場合、1ページ内に収まることが基本的に多いので。
単純計算ではありますが、対応後はレスポンスタイムが約半分に!!

自分は、デフォルトでCountLaterの方がいいと思っています。
(多少トリッキーですが、いったん説明すれば誰でもわかる仕様なので。)

ただ、この案件では、ブログコメントにも書いてあるとおり、
外だしSQLでしか使用していません。
CountLater機能の内部実装ベースでは、
外だしSQLでもConditionBeanでもあまり変わりないかもしれませんが。

これから作るシステムがあるので、
以下の対応をしていただければ、実績を積むことができます。
> いずれにせよ、DBFluteプロパティ (dfprop) の設定で、
> デフォルトをどっちにするかを選択できるようにはします。

念のため、確認ですが、
この対応をしないと、テンプレート(vmファイル)をいじるか、
ConditionBeanごとにメソッドオーバーライドが必要ですよね?

On 7月21日, 午前12:27, kubo <dbfl...@gmail.com> wrote:
> jfluteです。
>
> 書き忘れました。
>
> いずれにせよ、DBFluteプロパティ (dfprop) の設定で、
> デフォルトをどっちにするかを選択できるようにはします。
>
> なので、デフォルトの挙動を変えたとしても、
> もとの挙動に戻すのは簡単です。
>
> 2011/7/20 jflute <dbfl...@gmail.com>:
>
>
>
>
>
>
>
> > jfluteです。
>
> > みなさまに相談です。
>
> > ページングのカウント検索(総レコード数取得)ですが、
> > 現状の DBFlute では「ページング実データ取得より先に」
> > 実行されます。
>
> > ただ、厳密には以下のページの通り、
>
> > // DBアクセス - ページング検索 - ページング処理の順序 | DBFlute
> >http://dbflute.sandbox.seasar.org/ja/manual/topic/programming/dbacces...

kubo

未読、
2011/07/21 13:22:092011/07/21
To: dbf...@googlegroups.com
jfluteです。

そっか、ブログだったか...
詳しい実績の話ありがとう。
自分の関わりのあるプロジェクトでも、
最近 CountLater の実績ができました(しかもCBで)。

> 念のため、確認ですが、
> この対応をしないと、テンプレート(vmファイル)をいじるか、
> ConditionBeanごとにメソッドオーバーライドが必要ですよね?

その通りだけど、実はもう対応しました。なので、
デフォルト値をどっちにするか、ってだけの話に。
(littleAdjustmentMap.dfprop で isPagingCountLater = true)

2011/7/21 awaawa <p1us3i...@gmail.com>:

kubo

未読、
2011/07/21 13:27:462011/07/21
To: dbf...@googlegroups.com
jfluteです。

awaawaさん、もし良かったら試してみて。
(こっちでもテストしてるけど、重要なところなので)

DBFlute-0.9.8.8-RC3 にて
http://dbflute.sandbox.seasar.org/ja/manual/reference/dfprop/littleadjustment/index.html#ispagingcountlater

※ついでに一個したのプロパティも...

2011/7/22 kubo <dbf...@gmail.com>:

awaawa

未読、
2011/07/23 6:04:122011/07/23
To: DBFluteユーザの集い
awaawaです。

了解です。確認します。

On 7月22日, 午前2:27, kubo <dbfl...@gmail.com> wrote:
> jfluteです。
>
> awaawaさん、もし良かったら試してみて。
> (こっちでもテストしてるけど、重要なところなので)
>
> DBFlute-0.9.8.8-RC3 にてhttp://dbflute.sandbox.seasar.org/ja/manual/reference/dfprop/littlead...
>
> ※ついでに一個したのプロパティも...
>
> 2011/7/22 kubo <dbfl...@gmail.com>:
>
> > jfluteです。
>
> > そっか、ブログだったか...
> > 詳しい実績の話ありがとう。
> > 自分の関わりのあるプロジェクトでも、
> > 最近 CountLater の実績ができました(しかもCBで)。
>
> >> 念のため、確認ですが、
> >> この対応をしないと、テンプレート(vmファイル)をいじるか、
> >> ConditionBeanごとにメソッドオーバーライドが必要ですよね?
>
> > その通りだけど、実はもう対応しました。なので、
> > デフォルト値をどっちにするか、ってだけの話に。
> > (littleAdjustmentMap.dfprop で isPagingCountLater = true)
>
> > 2011/7/21 awaawa <p1us3inus2...@gmail.com>:

kubo

未読、
2011/07/24 22:53:092011/07/24
To: dbf...@googlegroups.com
jfluteです。

0.9.8.8 は RC (既にRC4) を使っている人が
増えてきたので時間のとれるときにリリースしますね。
(それまでに確認してくれるとうれしいけど)
このバージョンではまだデフォルトは変わりません。

デフォルト変更をやるとしたら、0.9.9.x になる予定です。

kubo

未読、
2011/07/29 12:56:082011/07/29
To: dbf...@googlegroups.com
jfluteです。

ということで、次のバージョンでデフォルトにします。

2011/7/25 kubo <dbf...@gmail.com>:

jflute

未読、
2011/08/19 23:13:492011/08/19
To: DBFluteユーザの集い
jfluteです。

この件、3週間ほど前にリリースされた
DBFlute-0.9.9.0A にて既に反映されています。
今のところ特に問題ないようですね。
この Discussion を Close とします。

On 7月30日, 午前1:56, kubo <dbfl...@gmail.com> wrote:
> jfluteです。
>
> ということで、次のバージョンでデフォルトにします。
>
> 2011/7/25 kubo <dbfl...@gmail.com>:
全員に返信
投稿者に返信
転送
新着メール 0 件