Vâng, có lẽ tôi đã quá già và tôi muốn hiểu những điều sau đây.Tại sao một công đoàn nhanh hơn một nhóm theo số
truy vấn 1.
select count(*), gender from customer
group by gender
truy vấn 2.
select count(*), 'M' from customer
where gender ='M'
union
select count(*), 'F' from customer
where gender ='F'
truy vấn 1 là đơn giản, nhưng đối với một số lý do trong các hồ sơ, khi tôi thực hiện cả hai cùng một lúc, nó nói rằng truy vấn 2 sử dụng 39% thời gian và truy vấn 1, 61%.
Tôi muốn hiểu lý do, có thể tôi phải viết lại tất cả các truy vấn của mình.
Chỉ cần đoán: truy vấn thứ hai thực sự không có tổng hợp, và không có trạng thái nào được giữ để tính số đếm (nó chỉ trả về số hàng phù hợp cho 'count (*)') – lanzz
ý của bạn là gì? cùng thời gian'? – Sebas
Tôi đoán bạn chỉ có 2 giới tính và mọi người có giới tính được chỉ định thay vì một số là 'NULL'? Ngoài ra nếu bạn thử 'UNION ALL' thì sao? Liệu điều đó có cải thiện cái thứ hai hơn nữa không? Ngoài ra RDBMS và kế hoạch thực hiện trông như thế nào? Ngoài ra chi phí tương đối trong kế hoạch thực hiện SQL Server không nhất thiết phản ánh hiệu suất thực nếu đó là những gì bạn đang sử dụng để so sánh hai truy vấn. –