データベースには200,000のドキュメントがあり、600万のドキュメントを持つプロパティにリンクしています。クエリを実行すると、クエリによっては、GCオーバーヘッドの上限を超えたエラーが表示されます。OrientDBでクエリを実行すると、GCオーバーヘッドの上限を超えました
私のコンピュータには16GBのRAMがあり、私はOrientDB(-Dstorage.diskCache.bufferSize = 8192)に8GBを与え、-Xms1024 -Xmx2048を付けます。そして私は他のオプション、-Xms128 -Xmx4096、およびその他のオプションを試しました。
誰かがそれを修正する方法を手伝ってもらえますか?または、この量のデータを処理するのに十分なOrientDBはありませんか?
私のデータは、このようなものである:、各部分が4つのプロパティを持つクラスlineorderの複数lineorderを持って
{"@type":"d","@class":"part","p_partkey": 2, "lineorder": [{"@type":"d","@class":"lineorder","customer": [{"@type":"d","@class":"customer","c_city": "INDONESIA1"}], "lo_supplycost": 54120, "orderdate": [{"@type":"d","@class":"orderdate","d_weeknuminyear": 19}], "supplier": [{"@type":"d","@class":"supplier","s_phone": "16-789-973-6601|"}], "commitdate": [{"@type":"d","@class":"commitdate","d_year": 1993}], "lo_tax": 7}, {"@type":"d","@class":"lineorder","customer": [{"@t...
は1つのプロパティlineorderタイプLINKLISTを持つクラスの一部の20万一部ありますが、顧客、サプライヤーcommitdate、すべてのリンクされたリスト。
クエリの例:ヒープと、ディスクキャッシュ:
select sum(eval("line.lo_extendedprice * line.lo_discount/100")) as revenue
from (select lineorder as line from part where lineorder.orderdate contains (d_year=1993) unwind line)
where line.lo_discount between 1 and 3 and line.lo_quantity<25 and line.orderdate contains (d_year=1993)
こんにちは@Raphael、あなたのDBはどのように構造化されていますか(クラス、...)?このエラーを取得するために実行したクエリ/クエリはどれですか?ところで、あなたの問題を再現するための小さなDBテストがあったなら、それは素晴らしいでしょう。 – LucaS
@ルーカス私はそれを小さなデータベースで試してみましたが、うまくいきましたが、すべてを挿入した後で同じクエリがこのエラーを返します。私は上記のデータの例を載せます。 – Raphael
こんにちは@ラファエル、私はデータセットを再現しようとしています。いくつかのプロパティにインデックスがありますか?これはあなたの質問をスピードアップする可能性があります。 – LucaS