1

私はcppでSOCIを使用しています

statement sql =
  (db.prepare << "insert into table(bunch of columns) "
      "values(:s,:e,:qs,:qe, :ts,:te, :qi, :ti,:tutr, :q_oc,:q_g, "
      ":q_ref, :t_loc, :t_org, :t_ref)",
    use(s, use(e), use(q), use(qutop),
    use(tart), use(top), use(qame), use(tame),
    use(utr), use(qoc), use(qrg), use(qref),
    use(toc), use(trg), use(tef));

ここで、use() 内のすべての変数は一括入力用のベクトルです。

を使用すると、

sql.execute(true);

ステートメントは実行されましたが、割り当てられたメモリは決して解放されません。

約 1TB の大きなファイルがあり、これを実行すると常にメモリ オーバーフローが発生します。sql.execute() によって行われたメモリ割り当てをクリアする方法はありますか。

今のところ、使用して回避策を実行しました

db << "insert into table(bunch of columns) "
      "values(:s,:e,:qs,:qe, :ts,:te, :qi, :ti,:tutr, :q_oc,:q_g, "
      ":q_ref, :t_loc, :t_org, :t_ref)",
    use(s, use(e), use(q), use(qutop),
    use(tart), use(top), use(qame), use(tame),
    use(utr), use(qoc), use(qrg), use(qref),
    use(toc), use(trg), use(tef);

しかし、私は上記のステートメントを複数回使用する必要があるため、statement.execute() を使用したいと思います

4

0 に答える 0