http://otndnld.oracle.co.jp/document/products/as10g/1013/doc_cd/web.1013/B28605-01/optimiz011.htm

http://d.hatena.ne.jp/seraphy/20120722%23p1


データベースのアップグレード
接続時に「upgrade=true」という属性をつけることで自動的に変換が行われる。

ページサイズのチューニング
derby.storage.pageSize 物理的なテーブルのページサイズ ? ページサイズはDerbyがテーブルや索引を読み書きする単位となる.
	デフォルトは4096
	64MB以上空きメモリのあるWindowsNT系なら、8192が推奨される。
	ページサイズは、 4096、8192、16384、または 32768 の中から 1 つだけ指定できる。

derby.storage.pageReservedSpace 挿入時、ページ確保時に空きを残す比率 ? 挿入処理でページを作成したとき、将来の挿入・更新に備えて、どのくらい空きを残すかを示す.
	デフォルトで20が設定される.
	マスタ系で更新が発生しないことが分かっている場合は比率を下げることが可能.

derby.storage.minimumRecordSize 最小レコード長 ? 更新系のテーブルでVARCHAR, VARCHAR FOR BIT DATA型の可変サイズの列がある場合、事前に最小サイズを広めに取っておくことでレコード更新時にページ溢れを起こす可能性を下げることができる。
	多く取りすぎると、無駄になる。
	デフォルト、および、最小値は12バイト
	最大値は、derby.storage.pageSize * (1 - derby.storage.pageReservedSpace/100) - 100.

derby.storage.pageCacheSize メモリ上にキャッシュするページの個数 ? メモリ上にキャッシュしておくページの個数を示す
	デフォルトは1000ページ　(デフォルト4096ページサイズなら、x1000 で約4MBのメモリが必要)
	最小は40ページ
	最近のデスクトップアプリであればメモリを贅沢に使えるので、もう少し大きくても良いかもしれない。(ヒープがあるかぎり指定可能.)


select
  SUBSTR(CONGLOMERATENAME, 1, 20) -- 表またはインデックス名
, ISINDEX -- インデックスか? 0以外ならインデックス
, NUMALLOCATEDPAGES -- データが割り当てられたページ数
, NUMFREEPAGES -- テーブルに関連づけられている未使用ページ数
, (NUMALLOCATEDPAGES + NUMFREEPAGES) as TOTALPAGES -- 全ページ数
, NUMUNFILLEDPAGES -- 使用中だが、まだ空きのあるページの数
, PAGESIZE -- ページサイズ
, ESTIMSPACESAVING -- 圧縮した場合に節約できると予想されるバイト数
from sys.systables st
, table(syscs_diag.space_table(st.tablename)) as t
where st.tabletype = 'T';
