Tôi cần nhập khoảng 500.000 bản ghi chứa dữ liệu tra cứu IP (chỉ đọc tham khảo) khoảng một lần một tuần (chỉ có ba cols / bigint cols).
Tôi thực sự không muốn lo lắng về việc hợp nhất dữ liệu với bảng hiện có, tôi muốn xóa dữ liệu cũ và nhập lại.
Các truy vấn lý tưởng chạy trên dữ liệu sẽ tiếp tục chạy (chúng tôi không nhận được nhiều trong số này và chúng có thể chấp nhận để chúng chạy chậm hơn một chút trong khi quá trình nhập xảy ra, nhưng cần phải hoạt động 24/7, vì vậy hãy chạy nó " hết giờ "không phải là một lựa chọn).
Những điều đã thử
SSIS: Tôi đã tạo một gói SSIS cắt ngắn bảng và nhập - mất khoảng 30 giây để chạy (thực sự quá lâu).
Bảng tạm thời: Nhập vào bảng tạm thời, cắt bớt và sao chép qua cũng mất khoảng 30 giây.
BCP: Nhập hàng loạt cũng khá chậm (vì một số lý do, nó chậm hơn SSIS (thậm chí không có chỉ số để duy trì) - Tôi đoán đó là việc cần làm với các giao dịch char-> int / bigint: /
Bàn gương? Vì vậy, hiện tại, tôi đang tự hỏi về việc đọc bảng thông qua chế độ xem, nhập dữ liệu vào bảng nhân bản và thay đổi chế độ xem để trỏ đến bảng này ... điều này có vẻ như sẽ nhanh chóng, nhưng có vẻ nhỏ bit hacky với tôi.
Đây có vẻ như là một vấn đề phổ biến, nhưng tôi không thể tìm thấy các thực tiễn được đề xuất - mọi ý tưởng sẽ được đánh giá cao nhất!
Cảm ơn