2008-11-24 36 views
6

Tôi có một bảng dữ liệu khá lớn (nhiều gigabyte) trong SQL Server mà tôi muốn chuyển đến một bảng trong cơ sở dữ liệu khác trên cùng một máy chủ.Di chuyển một cách hiệu quả các tập dữ liệu lớn giữa các bảng SQL Server?

Các bảng có cùng bố cục.

Cách hiệu quả nhất để thực hiện việc này là gì?

Đây là thao tác một lần để không cần tự động hóa.

Rất cám ơn.

Trả lời

6

Nếu đó là thao tác một lần, tại sao phải quan tâm đến hiệu suất trên cùng hiệu quả nhất?

SELECT * INTO OtherDatabase..NewTable FROM ThisDatabase..OldTable 

hoặc

INSERT OtherDatabase..NewTable 
SELECT * FROM ThisDatabase..OldTable 

... và để cho nó chạy qua đêm. Tôi dám nói rằng bằng cách sử dụng SELECT/INSERT INTO trên cùng một máy chủ không phải là xa hiệu quả tốt nhất bạn có thể nhận được anyway.

+1

Bạn tạo một điểm hợp lệ. Tôi đoán tôi chỉ là quá trình lập trình để làm những điều 'đúng cách'. Truy vấn đang chạy khi tôi nhập! – Martin

+1

xem xét BULK INSERT thay vì chèn. Xem http://msdn.microsoft.com/en-us/library/ms188365.aspx –

+0

Hoàn thành và chỉ mất 26 phút. Cảm ơn. – Martin

2

Hoặc bạn có thể sử dụng "Thuật sĩ xuất và nhập SQL" được tìm thấy trong "Quản lý" trong Microsoft SQL Server Management Studio.

2

Tôi sẽ đi với câu trả lời của Tomalak.

Bạn có thể muốn tạm thời đặt cơ sở dữ liệu mục tiêu của bạn vào chế độ phục hồi số lượng lớn-đăng nhập trước khi thực hiện một 'chọn vào' để ngăn chặn các tập tin log nổ ...

1

Nếu đó là SQL Server 7 hay 2000 nhìn vào dữ liệu chuyển đổi Dịch vụ (DTS). Đối với SQL 2005 và 2008 xem xét Dịch vụ Tích hợp SQL Server (SSIS)

1

Chắc chắn đặt DB mục tiêu vào chế độ ghi nhật ký. Điều này sẽ tối thiểu đăng nhập các hoạt động và tăng tốc độ nó lên.

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