2012-09-17 78 views
12

Tất cả, tôi phải tạo một cơ sở dữ liệu duy nhất có lược đồ cơ bản. Cơ sở dữ liệu này sẽ lớn (cộng thêm 100GB) và sẽ được sử dụng làm kho dữ liệu. Bây giờ, việc tạo ra cơ sở dữ liệu này hiện đang được thực hiện trong 'one-hit' thông qua mã C#; kéo dữ liệu từ một số nguồn khác nhau. Do khối lượng dữ liệu tuyệt đối, việc tạo này đang gây ra một số vấn đề. Nó đã được quyết định rằng thay vì tạo ra một cơ sở dữ liệu duy nhất trong một lần; đếnKết hợp nhiều cơ sở dữ liệu vào một cơ sở dữ liệu đơn

  1. Tạo một số cơ sở dữ liệu nhỏ hơn chứa các bảng dữ liệu cốt lõi.
  2. Hợp nhất các cơ sở dữ liệu nhỏ hơn vào một cơ sở dữ liệu lớn hơn.
  3. Tạo giản đồ/thêm các ràng buộc có liên quan.

Câu hỏi của tôi là hai lần.

1. Cách tốt nhất để hợp nhất nhiều cơ sở dữ liệu (với lược đồ/cấu trúc bảng giống hệt nhau) là gì?

2. Có cách nào tốt hơn để tạo kho dữ liệu này (cơ sở dữ liệu cực lớn) không?

Cảm ơn thời gian của bạn.

+2

Tại sao tạo ra một cơ sở dữ liệu lớn gây ra vấn đề, và tại sao sẽ không tạo ra nhiều cơ sở dữ liệu nhỏ gây ra cùng một vấn đề? –

+0

Để tạo cơ sở dữ liệu 'lớn' mất sáu giờ +. Phần lớn dữ liệu này để tạo thành cơ sở dữ liệu này được lấy từ các cơ sở dữ liệu khác (đôi khi trên một mạng). Do amaount dữ liệu chúng ta có thể bị treo trên cá thể máy chủ tạo cơ sở dữ liệu này. Đây là lý do để cố gắng điều chỉnh tiến trình, do đó, khi/nếu có một thả ra chúng tôi donot kết thúc với một cơ sở dữ liệu bị hỏng. – MoonKnight

Trả lời

7

cho câu hỏi đầu tiên của bạn: Bạn đã đề cập đến lược đồ và cấu trúc bảng giống hệt nhau, trong trường hợp đó, chỉ đơn giản là di chuyển dữ liệu từ một bảng DB (tức là nhỏ hơn DB) sang một bảng khác (tức là DB lớn hơn). cho điều này phải đảm bảo

1) không có bản sao của dữ liệu (ít-nhất là trong lĩnh vực PK)

2) di chuyển dữ liệu từ một db khác cho máy chủ sql tham khảo

Transfer data from one database to another database

4

Câu trả lời của Sola là tốt và sẽ hoạt động. Đây là một lựa chọn khác: Không hợp nhất chút nào. Tạo một khung nhìn công đoàn trên tất cả các bảng cơ sở mà quá trình nhập của bạn tạo ra. Điều đó giúp bạn tiết kiệm rất nhiều chuyển động dữ liệu. Chế độ xem như vậy được gọi là partitioned view.

+0

Tuy nhiên, tôi biết về các chế độ xem được phân đoạn, cơ sở dữ liệu kho dữ liệu phải độc lập. Cơ sở dữ liệu này phải được cung cấp cho khách hàng dưới dạng một thực thể cơ sở dữ liệu (có thể trải rộng trên nhiều .ndf, v.v.).Tôi cần để có thể tự động hóa quá trình tạo cơ sở dữ liệu, do đó phương pháp được đề xuất bởi @sola không phải là một phương pháp tôi có thể sử dụng. Cảm ơn vì đã dành thời gian cho tôi. – MoonKnight

6

SQL-Hub (http://sql-hub.com) sẽ cho phép bạn hợp nhất nhiều cơ sở dữ liệu với cùng một lược đồ vào một cơ sở dữ liệu. Có một giấy phép miễn phí sẽ cho phép bạn làm điều này từ giao diện người dùng mặc dù bạn có thể cần phải trả tiền cho một giấy phép nếu bạn muốn lên lịch trình để chạy tự động. Tuy nhiên, nếu có khối lượng dữ liệu rất lớn, nó có thể chứng minh một chút chậm cho những gì bạn muốn đạt được - bạn có thể thử nó mặc dù.

Ngoài ra còn có một số bài viết here xem xét một số tùy chọn khác cho các loại vấn đề này.

Các vấn đề liên quan