title: When should i use /*+ APPEND */ during INSERT
body: <p>As a part of daily importing a job i am <code>TRUNCATING</code> the data for tables and inserting data from raw file.</p>
  
  <p>Some tables import usually large data like in the range <code>200,000</code> rows but some tables import less data in the range <code>5,000</code> to <code>30,000</code> rows.</p>
  
  <p>For large table import it will take lot of time during insertion and at the end sometimes it will end with performance issue.</p>
  
  <p>I am using Java for processing this imports into Oracle table. So this table is not hardcoded and import according to their job.</p>
  
  <pre><code>jdbcTemplate.execute("TRUNCATE TABLE " + tableName);    --for truncating table
  
  return "INSERT INTO " + tableName + " (" +
                  columnData.stream().filter(Objects::nonNull).map(ColumnData::getName).collect(joining(", ")) +
                  ", SYSTEM_INSERTED_AT) VALUES (" +
                  values.stream().collect(joining(", ")) +
                  ", CURRENT_TIMESTAMP)";  --for insertion into table
  </code></pre>
  
  <p>I would like to know is it good idea to use <code>/*+ APPEND */</code> hint during insertion and does it improve performance during insertion ? As read in the oracle article for less insertion its not good idea to use <code>/*+ APPEND */</code> as it will end up affecting the performance issue.</p>