Tôi có một bảng được chèn, cập nhật và chọn từ hàng ngàn lần trong vòng một giây. Tôi đang có vấn đề bế tắc mặc dù.
- Cơ sở dữ liệu có 2-5 lần chèn 1000 hàng đồng thời bằng cách sử dụng Linq đến Sql.
40 lần mỗi giây, cũng có một câu lệnh chọn từ bảng đó và nếu một điều kiện là đúng (95% thời gian là như vậy), một bản cập nhật xảy ra với mã tương tự như sau:
tạo thủ tục AccessFile (@code, @admin) NHƯ
khai báo @id int, @access datetime, chuỗi @file
chọn @ id = Id, @accessed = access, @file = file từ các tệp có code = @code
NẾU @admin <> 0 NẾU @accessed là null bắt đầu
THIẾT LẬP CẤP PHÂN TÍCH GIAO DỊCH ĐỌC HIỂU
cập nhật tập tin được truy cập = getdate () trong đó id = @id
THIẾT LẬP CẤP PHÂN TÍCH CẤP GIAO DỊCH
kết thúc
chọn @id làm Id, @file làm tệp
Có vẻ như đó là các bản cập nhật mâu thuẫn với các phần chèn đang gây ra bế tắc.
Ví dụ là 1 với 1 với thủ tục được lưu trữ, chỉ khác là tên. Giả sử 1 và 2, bất kể tên thủ tục được lưu trữ.