私はディスクからファイルをロードしています。レコードは9,00,000件あります。ファイルを1行ずつ読み込んで処理してから、Javaオブジェクトに設定しています。各レコードに対して、以下のコードが実行されています1回の更新と1つの選択クエリ)スレッド "main"の例外java.lang.OutOfMemoryError:oracle.jdbc.driver.OracleSqlのJavaヒープ・スペース。 <init>
try
{
if(conn != null)
{
selectPrepareStatement.setString(1, someValue);
selectPrepareStatement.setMaxRows(1);
rs = selectPrepareStatement.executeQuery();
String secondaryCIF = null;
insertPreparedStatement.setInt(1, vo.getRecordType());
insertPreparedStatement.setString(2, vo.getRefType());
insertPreparedStatement.setString(3, vo.getCustOwnershipType());
insertPreparedStatement.setString(4, vo.getTin());
insertPreparedStatement.setString(5, vo.getCifId());
insertPreparedStatement.setString(6, vo.getPrimaryOrSecondary());
Statement statement = conn.createStatement();
if(vo.getPrimaryOrSecondary().equals("P"))
{
updatedCount = statement.executeUpdate("update table_name set col1='"+value1+"' where col2= '"+value2)+"'");
updatedCount = statement.executeUpdate();
}else if(vo.getPrimaryOrSecondary().equals("S"))
{
updatedCount = statement.executeUpdate("update table_name set col3='"+value3+"' where CUST_CIN = '"+value1+"'");
updatedCount = statement.executeUpdate();
}
insertPreparedStatement.setInt(8, updatedCount);
insertPreparedStatement.setString(9, null);
insertPreparedStatement.executeUpdate();
}
if(rs != null)
{
rs.close();
}
}catch(Exception e)
{
}
私は3,00,000は、いくつかのいずれかをrecords.Canした後、エラーを取得し、1ギガバイトにヒープ領域を増やす場合は、この上で私を助けてください?
すべてのpreparedstatementおよび変数は、グローバルおよび静的として宣言されています。
このような評判の高いユーザーから、このような不適切な質問が表示されることに私は非常に驚いています – Andremoniy
このファイルのサイズ(MB単位)は?各繰り返しに何かを保存していますか? – AxelH
何が欠けていますか - DBクエリを実行しているコード行は、それが必須です – Andremoniy