Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Giới hạn mệnh đề IN trong Sql Server

Có, có một giới hạn, nhưng MSDN chỉ xác định rằng nó nằm "trong hàng nghìn":

Việc bao gồm một số lượng cực lớn giá trị (nhiều nghìn) trong mệnh đề IN có thể tiêu tốn tài nguyên và trả về lỗi 8623 hoặc 8632. Để khắc phục sự cố này, hãy lưu trữ các mục trong danh sách IN trong một bảng.

Xem xét chi tiết các lỗi đó, chúng tôi thấy rằng giới hạn này không dành riêng cho IN nhưng áp dụng cho độ phức tạp của truy vấn nói chung:

Lỗi 8623:

Bộ xử lý truy vấn đã hết tài nguyên nội bộ và không thể tạo kế hoạch truy vấn. Đây là một sự kiện hiếm gặp và chỉ được mong đợi đối với các truy vấn hoặc truy vấn cực kỳ phức tạp tham chiếu đến một số lượng rất lớn các bảng hoặc phân vùng. Hãy đơn giản hóa truy vấn. Nếu bạn cho rằng mình nhận được thông báo này do nhầm lẫn, hãy liên hệ với Dịch vụ hỗ trợ khách hàng để biết thêm thông tin.

Lỗi 8632:

Lỗi nội bộ:Đã đạt đến giới hạn dịch vụ biểu thức. Vui lòng tìm kiếm các biểu thức phức tạp tiềm ẩn trong truy vấn của bạn và cố gắng đơn giản hóa chúng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách xác định lại các cột được trả về bởi một thủ tục được lưu trữ trong SQL Server

  2. Bắt đầu với SQL Server 2017 trên Linux trong cổng Azure

  3. Cách tắt tất cả các trình kích hoạt trong cơ sở dữ liệu SQL Server

  4. Tương đương tốt nhất cho IsInteger trong SQL Server

  5. Lỗi CTE:Các loại không khớp giữa phần neo và phần đệ quy