Tôi có một đoạn mã thực hiện chèn vào các bảng không chuẩn hóa cao. Các bảng có số lượng cột từ ~ 100 đến 300+. Đây là SQL Server 2008 R2, chạy trên Windows Server 2008.
Mỗi lần chèn bao gồm việc chèn vào một số bảng trong cùng một giao dịch. Một số chèn được NHibernate bó, nhưng một số không thể được, nhưng tất cả chúng đều theo cùng một giao dịch.
Khi tôi thực hiện các thao tác chèn trong 500 lần bằng cách gọi liên tục một đoạn mã thực hiện thao tác chèn, tôi nhận được trung bình ~ 360 ms.
Điều kỳ lạ là, khi tôi chạy mã kiểm tra đồng thời bằng 4 quy trình (cùng một exe chạy từ 4 dấu nhắc lệnh khác nhau trong windows server 2008), hiệu suất chèn trên mỗi cuộc gọi sẽ tốt hơn nhiều. Tôi thấy các vụ nổ nhanh đến 90 ms (gần như nhanh hơn X4). Tôi đang đo thời gian chèn từ mã.
Vì 4 quy trình không biết gì về nhau, tôi cho rằng điều này có liên quan đến SQL Server, nhưng tôi hoàn toàn không biết tại sao. Tôi muốn biết lý do tại sao điều này xảy ra và nếu có bất kỳ cấu hình nào cho phép tôi có được hiệu suất tương tự khi việc chèn không thường xuyên.
Các đề xuất về các phương pháp giám sát SQL Server để hiểu những gì đang diễn ra ở cấp db cũng được hoan nghênh như nhau.