La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Informix/1314456-Borrar-Registros.html

Borrar Registros

Borrar Registros

Publicado por Jose Arturo (1 intervención) el 24/02/2012 15:42:31
Hola buenos dias podrian apoyarme.

Tengo una tabla que se le tiene que hacer una depuración de datos, la tabla es de aproximadamente de 3 millones de registro y los datos que tengo que depurar son un aproximado de un 1 millón.

Ya seccione los delete para que me dejara borrarlos pero aun así me sigue mandando error.

240: Could not delete a row.
134: ISAM error: no more locks


Me podrían apoyarme con algo de información.

Saludos.

Borrar Registros

Publicado por Manuel (1 intervención) el 29/02/2012 20:12:06
Hola,

No puede capturar mas locks el gestor de base de datos. Tienes un parametro onconfig que lo para controlar esto (por ejemplo)

LOCKS 500000

De todas formas borrar un millon de filas con una sola sentencia no es buena idea, te pude da un long transaction, lo que deberías hacer es un pequeño spl y borrar de a tramos controlando tu con un begin work y commit work.

Borrar Registros

Publicado por Cesar (1 intervención) el 09/04/2012 17:29:51
Hola;

Tu base de datos es transaccional, debes borrar por tramos y cada tramo debe estar dentro de una transacción.

Habres una transacción borras el tramo y cierra la transaccióny vuelves a iniciar el ciclo asi hasta borrar el millón. Está solución no es la mejor dado que los borrados masivos generan porosidad en la tabla de forma que con el tiempo los accesos a los registros de dicha tabla se volverán lentos.

Si tu borrado masivo es frecuente es necesario usar otras técnicas que no generen porosidad de las tablas y no comprometan la performance de acceso.

Saludos

Cesar