2016-09-22 9 views
0

In the discussion in one of the enhancement proposals for Version 3.0は、データベースの一括更新を表すが、トランザクション内(すなわち、原子量の更新)のクエリについての例が挙げられています。このようなアップデートの現在の問題は、データベースが非常に大きい場合、OOMエラーが発生する可能性があることです。トランザクションの範囲を小さくする方法

この問題を解決するには、OOMエラーでODBが失敗しないようにし、トランザクションをロールバックして、すぐにOOMの警告を表示し、ユーザーにトランザクションの範囲を下げるように要求します。

私の質問は次のとおりです。ユーザーがこのような一括更新トランザクションの範囲をどのように引き下げるのですか?

スコット

答えて

1

あなたはアップデートhttp://orientdb.com/docs/2.1/SQL-Update.htmlで動作limitキーワードを使用することができます。クエリの実行タイムアウトと、クエリの実行中に更新されたレコードの量によって制限することができます。

+1

ありがとうアンドレイ。 ODBが制限自体を行うことはできませんでしたか?私はこれが内部的にどのように機能するのか分かりませんが、Xの空きメモリがあると言うと、ODBは次のように言っています。 "そう、そのメモリの25%を取ってRAMのその部分が一度使用したら、結果をフラッシュし、洗浄し、すすぎ、更新が完了するまで繰り返す。 また別の質問をすることもできます。更新クエリによってサーバがOOM警告を発する可能性があることをユーザランドはどのように知ることができますか?つまり、ODBがインボデートしないように、すべてのクエリをプログラムでバッチ処理する必要がありますか? –

+0

残念ながら、事前に大きな質問を確認する必要がありますが、問題を解決する問題があります。https://github.com/orientechnologies/orientdb/issues/5720 –

+0

ありがとうございますAndrey。 OEP10でもその問題を考慮していますか?そうでなければ、それはすべきでしょうか? –

関連する問題