2010-12-12 10 views
1

テーブルが豊富な2Gの1つとそれ以降は、このテーブルで動作しない場合があります。mnesiaのhowto開始テーブル?

'mynode @ localhost' 5> mnesia:dirty_first(my_table)。 **終了:{aborted、{badarg、[my_table]}} **

フラグメンテーションを適用する必要があることは理解していますが、実行時にその方法を理解していますか? そして主な質問は、howtoは実行時にサイズを減らすためにmy_tableを起動することです? (私は再建性喪失を意味しません)

+0

私は選択の余地がありません。私は2000Mから1999Mにファイルをカットし、修理テーブル – vinnitu

答えて

0

mnesiaにどのようなデータを保存していますか?私が理解していることから、あなたはあなたのテーブルを横断しようとしているのですか? データベースに格納されるデータの最大量を決めることができれば、テーブルを作成する際に必要なフラグメントの数を事前に決めることができます。

あなたは下のリンクがあなたを助けているかどうかを確認、その後、あなたすでに断片化されたデータベースを再構成する必要がある場合はそうで

:: http://www.erlang.org/doc/apps/mnesia/Mnesia_chap5.html

+0

はい、私はテーブル内のすべてのレコードをトラバースしようとすると、この時点では全く断片化されていません。テーブルをデータで断片化することはできますか?新しい属性のテーブルを再作成する必要がありますか? – vinnitu

+1

テーブルを作成している間は、必ず "frag_properties"を使用して断片化テーブルを作成できます。 断片化したデータベースからデータにアクセスする方法を知っていると思います。 Mnesiaは、データがどの断片にあるかを見つけるためにハッシュを保持しています。 mnesia:change_table_frag(my_table、{attr、Val})を使ってフラグメントを追加できます。 私があなたに与えたリンクを確認してください – Arunmu

関連する問題