Recomienda la mejor opción de eliminación masiva

Estoy usando PostgreSQL 8.1.4. Tengo 3 tablas: una es el núcleo (tabla1), otras son dependientes (tabla2, tabla3). Inserté 70000 registros en la tabla 1 y registros relacionados apropiados en otras 2 tablas. Como usé CASCADE, pude eliminar los registros relacionados usando DELETE FROM table1; Funciona bien cuando los registros son mínimos en mi versión actual de PostgreSQL. Cuando tengo un gran volumen de registros, intenta eliminarlos todos, ¡pero no hay signos de progreso de eliminación durante muchas horas! Mientras que, la importación a granel, lo hace en pocos minutos. Deseo hacer una eliminación masiva en minutos razonables. Intenté TRUNCATE también. Como, TRUNCATE table3, table2, table1; Sin embargo, no hay cambio en el rendimiento. ¡Solo lleva más tiempo y no hay signos de finalización! Desde la red, obtuve pocas opciones, como eliminar todas las restricciones y luego recrearlas estaría bien. Pero, ¡ninguna consulta parece ejecutarse con éxito sobre 'tabla1' cuando se cargan más datos! Recomiéndame las mejores soluciones para eliminar todos los registros en minutos.

CREATE TABLE table1(
        t1_id   SERIAL PRIMARY KEY,
        disp_name       TEXT NOT NULL DEFAULT '',
        last_updated TIMESTAMP NOT NULL DEFAULT current_timestamp,
        UNIQUE(disp_name)
    ) WITHOUT OIDS;

CREATE UNIQUE INDEX disp_name_index on table1(upper(disp_name));

CREATE TABLE table2 (
        t2_id           SERIAL PRIMARY KEY,
        t1_id   INTEGER REFERENCES table1 ON DELETE CASCADE,
        type    TEXT
    ) WITHOUT OIDS;

CREATE TABLE table3 (
        t3_id           SERIAL PRIMARY KEY,
        t1_id   INTEGER REFERENCES table1 ON DELETE CASCADE,
        config_key      TEXT,
        config_value    TEXT
    ) WITHOUT OIDS;

Regards, Siva.

Respuestas a la pregunta(3)

Su respuesta a la pregunta