2009-05-13 42 views
5

Tôi đang thực hiện chèn hàng loạt tệp CSV vào SQL Server 2005, sử dụng gói SSIS (không phải do tôi xây dựng)là SSIS chèn số lượng lớn giống như một SỐ LƯỢNG LỚN Chèn

Tôi đang chạy SQL Profiler và xem tuyên bố chèn là:

insert bulk [dbo].[stage_dht](.....) 

nhưng không có mệnh đề FROM trong tuyên bố đó, vì vậy tôi biết cách tải dữ liệu hàng loạt vào SQL nhanh như thế nào ?

Trả lời

4

Có, tác vụ Chèn hàng loạt SSIS sử dụng cùng chức năng gạch chân mà lệnh BULK INSERT sử dụng. Bạn có thể thấy sự khác biệt trong SQL Profiler bởi vì tác vụ Bulk Insert sẽ sử dụng trực tiếp đối tượng COM (cho phép chèn số lượng lớn), thay vì chỉ đơn giản là một trình bao bọc GUI trên lệnh T-SQL. Vì vậy, thay vì chỉ định FROM, tôi đoán rằng nó vượt qua một con trỏ dòng IO mở cho đối tượng COM.

Chèn hàng loạt là cách nhanh nhất để tải nhiều dữ liệu vào SQL Server vì nó chạy trong quá trình, "chia sẻ cùng một không gian địa chỉ bộ nhớ. Bởi vì các tệp dữ liệu được mở bởi một quá trình SQL Server, dữ liệu không được sao chép giữa quá trình máy khách và quy trình SQL Server ". 1

Tuy nhiên, hiệu suất sẽ thay đổi nếu tệp nằm trên cùng một máy với máy chủ SQL hay không.

1About Bulk Import and Bulk Export Operations

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