Blog de divulgación de Ciencia y Tecnología

Test 5: Direct Path

// Test 5 : Obtención de tiempos en la inserción de 1 millon de registros
//        Optimización: Sin indices ni constraints + NoLogging + autocommit false + Batch Insert + Direct Path
// Ejemplo de optimización de carga de datos en Oracle. 
// Jose Ramón Pascual 


importPackage(Packages.oracle.jdbc.driver);
java.sql.DriverManager.registerDriver (new OracleDriver());


var count = 0;
var lote = 5000;
var i = 0;
try{
    var dbConn = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","disrupcion", "tecnologica");
    logger.info("COMIENZO Test5: "  +  DateUtil.getCurrentDate('yyyyMMddHHmmss'));    
    dbConn.setAutoCommit(false);
    var prdStmt = dbConn.prepareStatement("insert /*+ APPEND_VALUES */ into TABLA values (?,?)");
      for (i = 0; i < 1000000; i++) {
          prdStmt.setInt(1,i);       
        prdStmt.setString(2,"Cadena de texto del registro " + i);   
        prdStmt.addBatch();    
        
        if(i % lote == 0){
            prdStmt.executeBatch();    
            dbConn.commit();
        }
    
    }    
    prdStmt.executeBatch();    
    dbConn.commit();
    prdStmt.close();    
    logger.info("FIN Test4: "  +  DateUtil.getCurrentDate('yyyyMMddHHmmss'));    
}catch(e){    
    logger.error("Se produjo un error : " + e);
}
prdStmt.close();
dbConn.close();
return;
Follow by Email
LinkedIn
Share
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver
Privacidad