2010-04-01 65 views

Trả lời

9

Những hạn chế cho SQL Server được liệt kê here

Số lượng bảng cho mỗi truy vấn chỉ bị giới hạn bởi số lượng của nguồn lực sẵn có.

+0

Cảm ơn Barry đã trả lời. – kandarp

9

Trong SQL Server 2008, số lượng bảng tối đa bạn có thể có trong CHỌN chỉ bị giới hạn bởi các tài nguyên có sẵn (source).

Trong SQL Server 2005, có giới hạn 256 bảng cho một SELECT (source).

Mặc dù, nếu bạn bắt kịp những loại số đó, thì tôi sẽ nhận được một chút quan tâm đến tbh!

+2

"Raymond Chen lưu ý rằng nếu bạn phải hỏi hệ điều hành giới hạn ở đâu, có thể bạn đang làm điều gì đó sai" http://www.codinghorror.com/blog/2007/10/pushing-operating-system-limits. html –

+3

Thời gian duy nhất tôi từng nhìn thấy bất kỳ ai đạt đến giới hạn là khi họ sử dụng chế độ xem ảo để gọi lượt xem, v.v. Nếu bạn đang sử dụng chế độ xem để gọi, thì đã đến lúc dừng lại trong khi hệ thống của bạn vẫn hoạt động (không chỉ bạn sẽ chạy vào các giới hạn, nhưng bạn sẽ có vấn đề hiệu suất cắt đứt lâu trước khi bạn chạy vào các giới hạn của waht có thể được gọi). – HLGEM

+1

Chúng tôi đã hợp pháp đạt tới giới hạn 256 trong SQL 2005 một lần. – Joshua

10

Những câu trả lời khác đã đưa ra câu trả lời trực tiếp câu hỏi của bạn

TNHH chỉ bởi nguồn lực sẵn có

Tuy nhiên ngay cả khi SQL Server biên dịch thành công một kế hoạch cho truy vấn của bạn mà không có nghĩa là bạn nên. Việc tham gia nhiều hơn bạn có lớn hơn theo cấp số nhân không gian của kế hoạch truy vấn có thể sẽ được và bạn cũng có thể nhận được rất phụ kế hoạch tối ưu.

Đối với truy vấn có 12 tham gia, số lượng đơn đặt hàng có thể tham gia là 28,158,588,057,600. Ngoài ra mỗi tham gia có thể của ba thuật toán có thể (băm, vòng lồng nhau, hợp nhất)

Trong "xử lý sự cố thực tế SQL server 2005" Cuốn sách Cesar Galindo-Legaria nói

Nếu bạn đang tham gia hơn 20 bảng, cơ hội là trình tối ưu hóa không phải là xem xét toàn bộ không gian tìm kiếm nhưng dựa nhiều hơn vào chẩn đoán .... chúng tôi đã thấy các ứng dụng chạy truy vấn thông thường đối phó với hơn 100 bảng. Mặc dù có thể chạy như truy vấn rất lớn, bạn thực sự được kéo dài hệ thống trong những trường hợp này và phải rất cẩn thận đi này xa

+0

Theo Nguyên tắc của Microsoft, hơn năm bảng không được phép tham gia vào SQL Server. Nó có đúng không? Nếu không chính xác, theo quan điểm của bạn có bao nhiêu bảng được phép tham gia vào SQL Server cho hiệu suất tốt hơn. – RGS

-4

Đối inner join, tối đa 256 bảng có thể được tham gia. Đối với outer join, có thể kết hợp tối đa 2 bảng.

Nguồn: đào tạo trong lớp học.

+0

Tôi đề nghị bạn yêu cầu hoàn lại tiền cho khóa đào tạo này.Nó là tầm thường để viết một truy vấn cho thấy rằng nhiều hơn 2 bảng có thể được tham gia bên ngoài. –

Các vấn đề liên quan