UNION
toán tử yêu cầu các bộ giá trị trùng lặp (hàng) phải được loại bỏ tập kết quả trước khi bất kỳ hàng nào được trả về. Đó thực sự là một hoạt động DUY NHẤT SORT. Điều đó tương đối rẻ đối với các tập kết quả nhỏ, nhưng đối với các tập hợp lớn, nó có thể tốn nhiều tài nguyên trên thời gian máy chủ (tức là mất nhiều thời gian.)
Về lý thuyết, kết hợp các truy vấn với một UNION ALL
chứ không phải là UNION
toán tử sẽ nhanh nhất, vì nó sẽ loại bỏ ( n -1) đi vòng đến cơ sở dữ liệu, so với chạy các truy vấn riêng biệt. Nhưng đối với các giá trị lớn của n , bạn sẽ gặp phải giới hạn thực tế về kích thước của văn bản SQL (kích thước gói tối đa).
Đưa ra sự lựa chọn giữa UNION
toán tử và các truy vấn riêng biệt, đối với một tập hợp kết quả lớn, các truy vấn riêng biệt sẽ ít tốn tài nguyên hơn ở phía máy chủ.
Nói tóm lại, đó thực sự là sự cân bằng giữa việc nặng nhọc cho mỗi truy vấn so với việc nặng một thao tác SORT UNIQUE.