Tôi có 471 tệp có tổng dung lượng khoảng 100GB. Các tệp này là "\ t" riêng biệt, với dữ liệu giao dịch theo định dạng sau:Oracle 11gR2 tải nhiều tệp: sqlldr hoặc bảng bên ngoài?
char(10) not null,
char(8) not null,
char(1) not null,
char(4) not null,
number not null,
char(1) not null,
char(1) not null,
char(1) not null,
number not null
Thứ tự của các giao dịch trong tệp quan trọng và cần được bảo tồn, lý tưởng với id khóa chính. Ban đầu, tôi nạp các tệp này với sqlldr nhưng phải mất một thời gian rất dài. Gần đây tôi đã học về các bảng bên ngoài. Từ quan điểm chiến lược, phương pháp nào tốt hơn? Bảng bên ngoài hoạt động như thế nào? Cảm ơn bạn.
* Làm thế nào để làm việc bảng bên ngoài * Đó là đầy đủ được ghi trong sách hướng dẫn: http://docs.oracle.com/cd/E11882_01/server.112/e22490/et_concepts.htm –
tại sao sqlldr mất nhiều thời gian? Hãy thử tải trực tiếp và đảm bảo dữ liệu của bạn nằm trên cùng một mạng con cục bộ hoặc SAN (hoặc về cơ bản, không đẩy dữ liệu qua đường ống nhỏ trên mạng, như máy chủ ở NJ đang đẩy lên một db trong CA). Một số hạn chế cho tải trực tiếp, nhưng MUCH nhanh hơn. – tbone
Tôi calucated sqlldr đang tải với tốc độ 85 triệu hàng mỗi giờ. Dựa trên nói chuyện với một anh chàng, điều này có vẻ hợp lý, nhưng anh ta không phải là một chuyên gia. Có một cam kết mỗi 300k hàng. Một chuỗi oracle tạo ra một khóa chính trên chèn. Thứ tự của dữ liệu là quan trọng và chìa khóa duy trì thứ tự. Các tệp nằm trên một ổ đĩa trên cùng một máy chủ với cơ sở dữ liệu. Có thể đạt được tỷ lệ tốt hơn không? –