HSQLDBによって貯蔵されるテーブルの不足分で性能の点では吸う。 私は詳しく説明するためには2つの中型の貯蔵されたテーブル(より大きい1つの163 MB)で動くおよそ9時間を取るプログラムを動かしていた。 私はメモリテーブル(デフォルト)にテーブルを変え、今10分以下かかる。 私達が貯蔵されたテーブルに容易にまた逆も同様メモリテーブルをいかに変えてもいいか見よう。


いかに貯蔵されたテーブルにHSQLDBのメモリテーブルを変えることができるか。

この1つは容易である。 私はちょうど原稿ファイルを開け、作成のテーブルの声明で貯蔵される単語の記憶を変える。 それは自動的に改宗者貯蔵されたテーブルへのそれ次の時間それ使用される。 しかし逆はより複雑である。

いかにメモリテーブルにHSQLDBによって貯蔵されるテーブルを変えることができるか。

一時表を作成し、そのテーブルにすべてのデータを(できれば…選り抜きへの挿入物を使用して*…問い合わせからの…)コピーする必要がある。 それから原表を落とし、次にメモリテーブルとして作り直しなさい。 今度はすべてのデータを一時表から原表にコピーし、最終的に一時表を落としなさい。 プロシージャは複雑に鳴るかもしれない間、彼の塩の価値を持つあらゆるDBAのために、実行するために実際に部分の固まるである。

ここにメモリテーブルに大きい貯蔵されたテーブルを変える私がのが常であったものがある:

st.execute (「貯蔵されたテーブルTEMPSHEETを作成しなさい(\ 「メタアイデンティティ(0の開始の)ブランクの基本キーとしてデフォルトで発生するID \」整数…)「);
st.execute (「TEMPSHEETへの挿入物(から… *シート選びなさい)」);
st.execute (「低下テーブルシート」の);
st.execute (「メモリテーブルシートを作成しなさい(\ 「メタアイデンティティ(0の開始の)ブランクの基本キーとしてデフォルトで発生するID \」整数…) 「);
st.execute (「シートへの挿入物(から… * TEMPSHEET選びなさい)」);
st.execute (「低下テーブルTEMPSHEET」の);
st.execute (「操業停止コンパクト」の);

注: 上はジャワコードを働かせることから抜粋される。 「操業停止コンパクト」は未来のよりよい性能のために推薦される。

結論

最低損益はメモリテーブルモードでだけHSQLDBを使用するべきであることである貯蔵されたテーブルモードの代りに。 記憶限定による貯蔵されたテーブルモードを必要とすれば別のデータベースを考慮するべきである。