生S2DaoとDBFluteの検索処理パフォーマンスを比較してみた1

ちょっと(かなり)調べ&書き直しました(^^;


生のS2DaoDBFluteの検索速度を比較。

  • 環境
  • 使用プロジェクト
    • DBFluteのnbasic-example下にあるDfExampleTest
  • 使用データベース
    • DBFluteのnbasic-exampleで定義されているexampledb
      (MEMBERテーブルにデータ20000件追加)
  • 検証対象、概要
    • MEMBERテーブルを検索
    • 結果はMemberエンティティ(DBFluteで自動生成)のリストで受け取る
    • 外だしSQL、Cursor検索は全て同じSQLを使用
    • JOINはなし
    • デバッグログは出力しない
    • 結果の数値単位はms
    • Cursorについての説明はこちら

結果!!(()内の数値はSQLの発行にかかった時間(ms))
・1件だけ検索

実装構成初回2回目3回目4回目
S2Dao(自動)(RelKeyが指定されているとJOINするため該当なし)
S2Dao(外だしSQL)1562(1250)62(15)62(15)62(15)
DBFlute(CB)828(594)31(16)31(16)31(16)
DBFlute(外だしSQL)1500(1250)62(15)62(15)62(15)
DBFlute(Cursor)1375(1250)46(15)46(15)46(15)
・20020件検索
実装構成初回2回目3回目4回目
S2Dao(自動)(RelKeyが指定されているとJOINするため該当なし)
S2Dao(外だしSQL)6796(1641)5328(406)5328(406)5375(406)
DBFlute(CB)2640(969)1890(437)1843(437)1843(437)
DBFlute(外だしSQL)3765(1641)2140(406)2190(406)2156(406)
DBFlute(Cursor)3187(1641)1875(406)1812(406)1828(406)