Người lập kế hoạch phân loại các hoạt động liên quan đến truy vấn làAn toàn soi kèo bóng đá truoctran, Hạn chế soi kèo bóng đá truoctranhoặcsoi kèo bóng đá truoctran không an toàn. Một hoạt động an toàn soi kèo bóng đá truoctran là một hoạt động không xung đột với việc sử dụng truy vấn soi kèo bóng đá truoctran.Tập hợp
hoặcThu thập Merge
Node, nhưng có thể xảy ra ở nơi khác trong một kế hoạch chứa một nút như vậy. Một hoạt động không an toàn soi kèo bóng đá truoctran là một hoạt động không thể được thực hiện trong khi truy vấn soi kèo bóng đá truoctran được sử dụng, thậm chí không có trong người lãnh đạo.
Các hoạt động sau luôn bị hạn chế soi kèo bóng đá truoctran:
quét các biểu thức bảng phổ biến (CTE).
quét các bảng tạm thời.
Quét các bảng nước ngoài, trừ khi trình bao bọc dữ liệu nước ngoài cóisforignscanparallelsafe
API cho biết khác.
Kế hoạch các nút tham chiếu một tương quanSubplan
.
Người lập kế hoạch không thể tự động xác định xem chức năng hoặc tổng hợp do người dùng định nghĩa là an toàn soi kèo bóng đá truoctran, hạn chế soi kèo bóng đá truoctran hoặc soi kèo bóng đá truoctran không an toàn, bởi vì điều này sẽ yêu cầu dự đoán mọi hoạt động mà chức năng có thể thực hiện. Nói chung, điều này tương đương với vấn đề tạm dừng và do đó không thể.Tạo chức nănghoặcChức năng thay đổi, Các dấu hiệu có thể được đặt bằng cách chỉ địnhAn toàn soi kèo bóng đá truoctran
, Hạn chế soi kèo bóng đá truoctran
hoặcsoi kèo bóng đá truoctran không an toàn
khi thích hợp. Khi sử dụngTạo tổng hợp, Thesoi kèo bóng đá truoctran
Tùy chọn có thể được chỉ định vớian soi kèo bóng đá truoctran
, bị hạn chế
hoặckhông an soi kèo bóng đá truoctran
là giá trị tương ứng.
Các chức năng và tập hợp phải được đánh dấusoi kèo bóng đá truoctran không an toàn
Nếu họ ghi vào cơ sở dữ liệu, hãy thay đổi trạng thái giao dịch (trừ bằng cách sử dụng phép trừ để khôi phục lỗi), truy cập trình tự hoặc thực hiện các thay đổi liên tục đối với cài đặt. Tương tự, các chức năng phải được đánh dấuHạn chế soi kèo bóng đá truoctran
Nếu họ truy cập các bảng tạm thời, trạng thái kết nối máy khách, con trỏ, câu lệnh được chuẩn bị hoặc trạng thái phụ trợ linh tinh mà hệ thống soi kèo bóng đá truoctran thể đồng bộ hóa giữa các công nhân. Ví dụ,SetSeed
vàngẫu nhiên
bị hạn chế soi kèo bóng đá truoctran vì lý do cuối cùng này.
Nói chung, nếu một hàm được dán nhãn là an toàn khi bị hạn chế hoặc không an toàn hoặc nếu nó bị dán nhãn là bị hạn chế khi thực tế không an toàn, nó có thể ném lỗi hoặc tạo ra câu trả lời sai khi được sử dụng trong truy vấn soi kèo bóng đá truoctran. Về mặt lý thuyết, các chức năng ngôn ngữ C thể hiện hành vi hoàn toàn không xác định nếu bị dán nhãn sai, vì không có cách nào để hệ thống tự bảo vệ mình trước mã C tùy ý, nhưng trong nhiều trường hợp rất có thể, kết quả sẽ không tệ hơn bất kỳ chức năng nào khác.không an soi kèo bóng đá truoctran
.
Nếu một hàm được thực thi trong một công nhân soi kèo bóng đá truoctran có được các khóa không được giữ bởi người lãnh đạo, ví dụ bằng cách truy vấn một bảng không được tham chiếu trong truy vấn, các khóa đó sẽ được phát hành khi thoát công nhân, không kết thúc giao dịch. Nếu bạn viết một hàm thực hiện điều này và sự khác biệt hành vi này rất quan trọng đối với bạn, hãy đánh dấu các chức năng nhưHạn chế soi kèo bóng đá truoctran
Để đảm bảo rằng họ chỉ thực hiện trong người lãnh đạo.
Lưu ý rằng trình lập kế hoạch truy vấn không xem xét việc trì hoãn việc đánh giá các chức năng hoặc tập hợp bị hạn chế soi kèo bóng đá truoctran liên quan đến truy vấn để có được kế hoạch vượt trội. Vì vậy, ví dụ, nếu mộtWHERE
mệnh đề được áp dụng cho một bảng cụ thể bị hạn chế soi kèo bóng đá truoctran, trình lập kế hoạch truy vấn sẽ không xem xét thực hiện quét bảng đó trong phần soi kèo bóng đá truoctran của kế hoạch. Trong một số trường hợp, có thể (và thậm chí có thể hiệu quả) để đưa vào việc quét bảng đó vào phần soi kèo bóng đá truoctran của truy vấn và trì hoãn việc đánh giáWHERE
mệnh đề để nó xảy ra trênTập hợp
Nút. Tuy nhiên, người lập kế hoạch soi kèo bóng đá truoctran làm điều này.