Version 1.2.140 (2010-07-25)
今回はちょっと多いな、という感じ。キャッシュ周りの処理や、いくつかのパラメータのデフォルト値が改善されています。あと、共通表式(Common table expressions)が実験的ですがサポートされました。既にバグが挙げられている状況なので、まだしばらくは実用的には使えなさそうです。
- デフォルトのMAX_LOG_SIZEが2MBから16MBに。特定のユースケースでは3倍速くなったとの事。
- キャッシュメモリの取り扱いを改善
- h2.lobInDatabase使用時の保存方法が変更。h2.lobInDatabaseを使用している既存のデータベースは再構築が必要。
- 実際に利用されているリソースのみがメモリに読み込まれるようになった? 400kb程度メモリ使用量の削減。
- SHUTDOWN COMPACTが速くなった
- 大量のデータを削除した後、大きなデータベースを開くと非常に遅かったのを改善。
- LOG=0,LOG=1の時のパフォーマンスが改善(LOG=0 トランザクションログが無効、LOG=1 トランザクションログ有効、FileDescriptor.syncが無効。電源断などの問題の対処が必要ない場合。通常は、LOG=2 トランザクションログが有効で、チェックポイントごとにFileDescriptor.syncが行われる)
- 組み込みのプロファイラのデフォルト値変更
- たくさんのテーブル(特にテンポラリテーブル)のcreate/dropを行った後、プロセスをkillするとデータベースがオープンできなくなる場合がある問題の修正
- コンソールのビルトインコマンドに@sleepが追加
- EXPLAIN ANALYZEで、読み込んだページ数も表示されるようになった。※下記の、total:9というところ。
sql> explain analyze select * from hoge; PLAN SELECT HOGE.ID FROM PUBLIC.HOGE /* PUBLIC.HOGE.tableScan */ /* scanCount: 2001 */ /* total: 9 HOGE.HOGE_DATA read: 9 (100%) */ (1 row, 62 ms)
sql> select * from fuga; ID |DATA null |hoge 1 |fuga (2 rows, 31 ms) sql> select * from fuga where id is null; ID |DATA null |hoge (1 row, 0 ms) sql> select * from fuga where id is 1; ID |DATA 1 |fuga (1 row, 0 ms) sql> select * from fuga where id is distinct from 1; ID |DATA null |hoge (1 row, 0 ms) sql> select * from fuga where id is distinct from null; ID |DATA 1 |fuga (1 row, 0 ms)
その他、データベースファイルが大きくなったり、色々バグフィックスが行われたり、というところ。