SQL Server 的 Statistics 簡介

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   ar   使用   for   

當你要清空「資料表(table)」,或倒入大量「資料(data;record)」,或公司「資料庫(database)」改用新版本要資料大搬家…等情形,不只是要重建「索引(index)」,還應要重建或更新「統計(statistics)」。「統計」的正確與否,直接牽動 SQL Server 的「效能(performance)」。沒有「統計」固然不好,「統計」若過時,會讓最佳化程式做出錯誤的決定則更糟。

SQL Server 的查詢最佳化程式,會用索引的「統計」,來獲得它所需要的「資訊(information)」,以決定某個索引是否有用處。

如果某個用在搜尋的「欄位(column)」,我們沒有事先為它建立索引,則 SQL Server 會自動為該欄位建立「統計」。自動建立的「統計」會以 _WA_Sys 開頭來命名,如下圖 1。


圖 1

----------------------------------------------------------------------------------------------------------

手動更新「統計」:

透過 CREATE STATISTICS 指令,可針對未建立索引的欄位,直接產生「統計」資訊,也可透過 sp_createstats 系統「預存程式(stored procedure)」,直接將某個資料庫內的「所有」資料表,全部的欄位都建立「統計」資訊。
http://msdn.microsoft.com/zh-tw/library/ms188038.aspx
http://msdn.microsoft.com/zh-tw/library/ms186834.aspx
(hyperlink 若無法連結,可將 zh-tw 改為 zh-cn 再重試)

執行 UPDATE STATISTICS 指令,可要求某個資料表,或是直接指定索引或「統計」來做更新,而 sp_updatestats 系統預存程式,可針對特定資料表,把所有相關的統計進行更新。
http://msdn.microsoft.com/zh-tw/library/hh510198.aspx
http://msdn.microsoft.com/zh-tw/library/ms187348.aspx
http://msdn.microsoft.com/zh-tw/library/ms173804.aspx

一般來說,我們會依靠「自動更新統計」,但有些特殊情況下,可能會希望立即「手動」更新「統計」,例如 :

* 該資料庫的用途為「資料倉儲(data warehouse)」,平常不會有個別的資料更新,僅有批次更新。在批次更新完資料後,需要立即執行統計的更新。

* 索引中的鍵值,有大量的新增、修改或刪除,而你又確定接下來的運作,會立刻用到索引。

* 透過 TRUNCATE TABLE 清空某個資料表後,重新輸入或倒入資料,也就是資料內容已經完全不同了,但你又需要立即「存取(access)」該資料表。

----------------------------------------------------------------------------------------------------------

自動更新「統計」:

可透過圖形管理介面,在「資料庫屬性」視窗中,切到「選項」頁籤,如下圖 2。


圖 2

-----------------------------------------------------------------------------------------------------------

透過圖形介面的「統計」資料,看是否有 _WA_Sys 開頭來命名的「統計」,也可看出有哪些欄位,曾被應用程式用來搜尋,卻沒有事先建立可用的相關索引。

-----------------------------------------------------------------------------------------------------------

用指令瞭解「統計」資料 DBCC SHOW_STATISTICS(資料表名稱, 索引名稱或欄位名稱)
http://msdn.microsoft.com/zh-tw/library/ms174384.aspx

Density(密度),越低越好,較低的索引密度,表示此索引較具「辨識度」。當密度越接近 1,代表此索引越不具辨識度,查詢最佳化工具也就越不願意使用此索引。也代表此索引的存在,對查詢沒幫助,只會影響寫入資料的效能。

有關介紹「統計」的書籍,一些有介紹「資料庫效能」的書籍,多半都會提到。但以章立民先生,在 2008 年寫的下列這本書「SQL Server 2005 效能調校經典」(繁體中文),內容最完整和詳細,對於上圖 2 裡的「自動 非同步(asynchronous)更新統計資料」,此書也有詳細的解釋。但此書因年代久遠,在台灣已絕版 :
http://www.tenlong.com.tw/items/986181339X?item_id=37625
SQL Server 2005 效能調校經典 (Microsoft SQL Server 2005 Unleashed)
ISBN: 986181339X
ISBN-13: 9789861813394

-----------------------------------------------------------------------------------------------------------

 

SQL Server 的 Statistics 簡介

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.