Cuối cùng tôi đã nhận được đợt chèn của tôi để làm việc và bây giờ tôi đã được fiddling với kích thước của lô, nhưng tôi không thể thấy bất kỳ sự khác biệt trong hiệu suất giữa một giá trị 50 và một giá trị 10000. Điều này có vẻ rất kỳ quặc với tôi, nhưng tôi không biết chuyện gì đang xảy ra đằng sau hiện trường, vì vậy nó có thể là hành vi bình thường.Làm cách nào để đặt DataAdapter.UpdateBatchSize thành giá trị "tối ưu"?
Tôi đang chèn 160 nghìn hàng vào một bảng và thời gian trung bình cho các giá trị thử nghiệm của tôi là 115 +/- 2 giây. Nếu không có hàng loạt phải mất 210 giây, vì vậy tôi khá hài lòng với sự cải thiện. Bảng mục tiêu là:
CREATE TABLE [dbo].[p_DataIdeas](
[wave] [int] NOT NULL,
[idnumber] [int] NOT NULL,
[ideaID] [int] NOT NULL,
[haveSeen] [bit] NOT NULL CONSTRAINT [DF_p_DataIdeas_haveSeen] DEFAULT ((0)),
CONSTRAINT [PK_p_DataIdeas] PRIMARY KEY CLUSTERED
(
[wave] ASC,
[idnumber] ASC,
[ideaID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
) ON [PRIMARY]
Tôi đọc What to look for when setting UpdateBatchSize và câu trả lời chỉ đơn giản là thử nghiệm một vài giá trị khác nhau. Tôi có thể hiểu điều đó, nhưng không nên tính toán hay ít nhất là đánh giá cao một giá trị tốt nếu bạn biết thiết kế bảng, câu hỏi SQL và dữ liệu sắp được chèn vào?
Có bất kỳ phương pháp hay nhất nào ở đó mà ai đó có thể đề xuất không?