Tôi có một câu hỏi liên quan đến một phần tài liệu về Bàn Temp mà tôi mới đọc trên TechNet . Đoạn thứ tư của phần Bảng tạm thời trên trang đó có nội dung như sau:
Nếu một bảng tạm thời được tạo với một ràng buộc được đặt tên và bảng tạm thời được tạo trong phạm vi giao dịch do người dùng xác định, chỉ một người dùng tại một thời điểm có thể thực hiện câu lệnh tạo bảng tạm thời. Ví dụ: nếu một thủ tục được lưu trữ tạo một bảng tạm thời với ràng buộc khóa chính được đặt tên, thì thủ tục được lưu trữ có thể được thực thi đồng thời bởi nhiều người dùng.
Tôi làm việc trong một môi trường nơi chúng tôi sử dụng đáng kể một số thủ tục được lưu trữ sử dụng các bảng tạm thời được lập chỉ mục và chúng tôi chưa bao giờ gặp phải vấn đề mà người dùng phải chờ một lần thực hiện trước khi bắt đầu tiếp theo. Tôi hy vọng điều đó sẽ tiếp tục là trường hợp, nhưng tôi lo ngại rằng nó có thể trở thành một vấn đề nếu cảnh báo này không được hiểu đúng.
Cụ thể, tôi không rõ ràng về các điểm sau:
- Điều này chỉ áp dụng cho các bảng tạm thời toàn cầu, hoặc cho các bảng địa phương là tốt? Có vẻ lạ khi một bảng không hiển thị bên ngoài phiên (như trong trường hợp sau) sẽ ngăn phiên khác thực thi đồng thời.
- Những gì đủ điều kiện là một "ràng buộc được đặt tên"? Không phải tất cả các ràng buộc đều có tên (ngay cả khi chúng được tạo bởi hệ thống)? Đây có phải là đề cập đến các ràng buộc với bí danh do người dùng định nghĩa không? Điều này có vẻ như phrasing nghèo đối với tôi.
- "Nhiều người dùng" thực sự có nghĩa là nhiều phiên? Các quy trình này được gọi thông qua ứng dụng của chúng tôi bằng một tài khoản dịch vụ duy nhất, vì vậy 99,9% các cuộc gọi đến tập lệnh của chúng tôi được thực hiện với DB bằng tài khoản đó (và tôi không quan tâm đến việc gọi quản trị viên thỉnh thoảng có thể thực hiện trong phần phụ trợ). Nếu tài khoản dịch vụ có thể chạy sproc trong nhiều phiên cùng một lúc, thì vấn đề này sẽ được khắc phục cho mục đích của tôi.