Mi aplicación C# .NET escribe millones de registros en una tabla temporal utilizando OracleBulkCopy. Cada vez que la aplicación tiene 20000 registros o más en memoria, llama a OracleBulkCopy para escribirlos en un solo lote (estoy usando el tamaño de lote = 0). Al principio, la tabla está vacía y toma solo 2 segundos escribir todo el lote. Durante el proceso, el tiempo para escribir el lote aumenta. Después de 2.000.000 de registros, cada llamada dura casi 25 segundos. Estoy usando las opciones predeterminadas de OracleBulkCopy. Al hacer algunas pruebas cuando la tabla alcanza los 40.000.000, se necesitan casi 3 minutos para escribir 20.000 registros.OracleBulkCopy Performance
Me gustaría saber si hay alguna recomendación (no pude encontrar nada al respecto) para mantener un tiempo casi constante para cada llamada. ¿Estoy haciendo algo mal?
¿Tiene algunos desencadenantes de inserción en esta tabla? – Nate
No, nada. Ni siquiera una llave primaria. Y la tabla está configurada para ningún registro. –
¿Qué significa exactamente la tabla "temp"? Una tabla temporal global? – DCookie