indices corruptos generados por informix

Hola:

Otra vez, estamos teniendo problemas con indices del sistema, como me sugirieron en otra consulta que hice, quite las claves foraneas y repare los indices (oncheck -cd base:tabla), recee los indices que no fueran del sistema, actualice las estadisticas (antes no me dejaba hacerlas a las tablas que tenian problema) pero cuando quiero hacer un dbexport sigue teniendo problema el indice creado por informix. Es posible dropear este indice?.

muchas gracias!!!

Hola Pablo,

Que error te da el dbexport ?

El comando oncheck, no siempre repara los indices, a veces la corrupcion es tal que no puede ser arreglada, y en esos casos lo mejor (si es posible) es hacer un unload de la tabla completa a un archivo externo de texto, y dropear la tabla, recrearla y volver a cargarla.

desde dbaccess o sqlexidtor podes probar un “unload to mitabla.txt select * from mitabla”, a ver si lo hace bien o te da un error?

saludos

muchas gracias!!! voy a probar eso.

Pablo:

También deberías revisar el UNLOAD de la tabla a ver si el problema no es la presencia de algún carácter extraño en alguna columna que esté en los índices y que Informix no se lo banque …

Saludos

Gustavo

Si el índice que está corrupto es el de la pk quizás se grabó algo que no debería haberse podido grabar y te quedaron claves duplicadas. También podrías tener referencias inexistentes…

En cualquiera de los 2 casos el motor no puede arreglarlo porque se perderían datos… ahí tenés que decidir vos con que datos quedarte y cuales descartar.

Una opción es borrar el indice corrupto, hacer una consulta que te traiga los datos inválidos, eliminarlos y crear nuevamente el índice.