Pregunta

Tenemos un requisito para eliminar filas en el orden de millones de varias tablas como un trabajo por lotes (nota que no se van a suprimir todas las filas, que se van a suprimir basado en una marca de tiempo almacenado en una columna indexada). Es evidente que una normal Borra lleva por siempre (a causa de la tala, la comprobación de restricción de referencia, etc.). Sé que en el mundo LUW, tenemos ALTER TABLE NO CONECTADO al principio, pero me parece que no puede encontrar el equivalente de una sentencia SQL para DB2 V8 z / OS. Cualquiera tiene alguna idea de cómo hacer esto muy rápido? Además, cualquier idea sobre cómo evitar los controles de referencia cuando se eliminan las filas? Por favor hagamelo saber.

¿Fue útil?

Solución 3

modificó el espacio de tabla por lo que el bloqueo se produciría en el nivel de tabla en lugar de a nivel de página. Una vez que cambiamos de DB2 sólo se requiere una cerradura para hacer el ELIMINAR y no tuvimos ningún problema con el bloqueo. En cuanto a la tala de árboles, nos preguntábamos al cliente a ser conscientes de la cantidad de registro requerido (ya que no parecía haber una solución para moverse por la lucha contra la tala). En cuanto a las limitaciones, nos dejó allí y les recreado después de la eliminación.

Gracias a todos por su ayuda.

Otros consejos

En el pasado he resuelto este tipo de problema con la exportación de los datos y volver a la carga con un comando reemplazar estilo. Por ejemplo:

EXPORT to myfile.ixf OF ixf
SELECT * 
FROM my_table 
WHERE last_modified < CURRENT TIMESTAMP - 30 DAYS;

A continuación, puede cargarlo de nuevo, reemplazando la vieja materia.

LOAD FROM myfile.ixf OF ixf
REPLACE INTO my_table
NONRECOVERABLE INDEXING MODE INCREMENTAL;

No estoy seguro de si esto va a ser más rápido o no para usted (probablemente depende de si va a eliminar más de lo que está manteniendo).

  1. ¿Las claves externas ya tienen índices así?

  2. ¿Cómo tienes el conjunto de acción de eliminación? CASCADE, NULL, NO ACTION

  3. Utilice SET INTEGRITY para desactivar temporalmente las restricciones en el proceso por lotes. http://www.ibm.com/developerworks/ datos / biblioteca / techarticle / dm-0401melnyk / index.html

http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/r

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top