Tôi có một cơ sở dữ liệu trên PostgreSQL 9.2 có một lược đồ chính với khoảng 70 bảng và một số lượng khác nhau của các lược đồ cho mỗi khách hàng có cấu trúc giống nhau gồm 30 bảng mỗi bảng. Các lược đồ máy khách có các khóa ngoại tham chiếu lược đồ chính và không phải là cách khác.
Tôi mới bắt đầu điền vào cơ sở dữ liệu với một số dữ liệu thực được lấy từ phiên bản trước. DB đã đạt khoảng 1,5 GB (dự kiến sẽ tăng lên vài GB trong vài tuần) khi tôi phải xóa hàng loạt trong một bảng rất trung tâm trong lược đồ chính. Tất cả các khóa ngoại liên quan được đánh dấu TRÊN XÓA CASCADE.
Không có gì ngạc nhiên khi việc này sẽ mất nhiều thời gian nhưng sau 12 giờ, rõ ràng là tôi nên bắt đầu lại từ đầu, bỏ DB và khởi động lại quá trình di chuyển. Nhưng nếu tôi cần lặp lại thao tác này sau khi DB còn sống và lớn hơn nhiều thì sao? Có phương pháp thay thế, nhanh hơn?
Sẽ nhanh hơn nhiều nếu tôi viết một tập lệnh sẽ duyệt các bảng phụ thuộc, bắt đầu từ bảng xa nhất từ bảng trung tâm, xóa các bảng phụ thuộc theo bảng?
Một chi tiết quan trọng là có các kích hoạt trên một số bảng.