Chúng tôi hiện đang đối mặt với một vấn đề với chèn đồng thời vào một trong các bảng máy chủ sal của chúng tôi từ nhiều máy khách. Tôi hy vọng các bạn có thể giúp chúng tôi.Máy chủ SQL - Chèn Đồng thời vào bảng từ nhiều máy khách - Kiểm tra Giới hạn và Chặn
Chúng tôi đang sử dụng quy trình được lưu trữ để thực hiện các giao dịch. Trong quy trình được lưu trữ đó, đối với mỗi giao dịch, chúng tôi tính tổng doanh số cho đến thời điểm này. Nếu tổng doanh thu nhỏ hơn giới hạn đã đặt, thì giao dịch sẽ được cho phép. Nếu không, giao dịch sẽ bị từ chối.
nó hoạt động tốt hầu hết các lần. Tuy nhiên, đôi khi nhiều khách hàng cố gắng thực hiện giao dịch một cách chính xác cùng một lúc, kiểm tra giới hạn không thành công vì cả hai giao dịch đều được thực hiện.
Các bạn có thể đề xuất cách chúng tôi có thể thực thi hiệu quả giới hạn mọi lúc không? Có cách nào tốt hơn để làm điều đó không?
Cảm ơn!
Vui lòng cung cấp cấu trúc bảng và dữ liệu mẫu của bạn. Là hằng số giới hạn được thiết lập cho tất cả các giao dịch? –
Là linh cảm, vấn đề có thể được giải quyết nếu bạn thực hiện quy trình được lưu trữ nhanh hơn rất nhiều. Với 100ms va chạm được lưu trữ thủ tục sẽ là cực kỳ hiếm. Nếu bạn đăng truy vấn và định nghĩa bảng, chúng tôi có thể đề xuất một chỉ mục giúp tính tổng số rất nhanh. – Andomar
vui lòng tìm cấu trúc bảng. Trong số tiền này (cổ phần) cho mỗi lần đặt cược không được vượt quá 1000. Giới hạn 1000 này được lưu trữ trong một bảng khác. \t [SlipID] [bigint] SẮC (1,1) NOT NULL, \t [TillID] [int] NOT NULL, \t [Mã vạch] [varchar] (30) NOT NULL, \t [GamingDate] [ngày] KHÔNG NULL, \t [DrawID] [int] NOT NULL, \t [BetNumber] [tinyint] NOT NULL, \t [CurrencyID] [int] NOT NULL, \t [Stake] [thập phân] (9, 2) NOT NULL , \t \t [SlipTime] [datetime] NOT NULL, – sammy