什麼是統計值
SQL Server的QO(Query Optimizer)透過cost-based model
來選擇一個最合適計畫(估算成本最低)來執行查詢
注意每個執行計畫是使用CPU來做估算,使用過的執行計畫一般會Cache起來已便下次使用
QO會依照基數估計(Cardinality estimation)來產生執行計畫,基數估計扮演一個很重要的角色
SQL Server統計值是對於每個Index或欄位資料分布做紀錄,任何型態都支援統計值資料.
過期的統計值資料導致QO誤判產生不良執行計畫
在我們建立Index
時,統計值會自動創建。此外當欄位在查詢裡被使用(作為WHERE條件的一部分,group by子句,join條件)統計值會被自動建立
何時建立統計值?
每個索引都會有自己個統計資訊,在UI
查看統計資訊如下圖.