好吧,也許我太老了,我想了解以下內容。爲什麼一個工會比一個組的速度快
查詢1
select count(*), gender from customer
group by gender
查詢2.
select count(*), 'M' from customer
where gender ='M'
union
select count(*), 'F' from customer
where gender ='F'
第一查詢是簡單的,但由於某些原因的探查,當我在同一時間執行兩個,它說,查詢2使用39%的時間,查詢1,61%。
我想了解原因,也許我必須重寫所有的查詢。
只是一個猜測:第二個查詢實際上有沒有聚集,沒有狀態保持以計算計數(它只是返回匹配的行數'COUNT(*)') – lanzz
你是什麼意思'在同一時間? – Sebas
我想你只有2個性別和每個人都有分配,而不是一些被'NULL'性別?另外如果你嘗試'聯盟所有'?這會進一步提高第二個嗎?還有什麼RDBMS和執行計劃是什麼樣的?在SQL Server執行計劃中,相對成本也不一定反映真實的性能,如果這是您用來比較這兩個查詢。 –