Sql Server 2005 統計信息用途

Sql Server 2005  統計信息用途

   1, 什麼是統計信息 

    以下是官方的對統計信息的描述:

     按照默認設置,如果表中的某列沒有索引,則SQL Server會自動爲該列創建統計。然後,查詢優化器評估該列中數據分佈範圍的統計信息,以選擇一個更爲有效的查詢處理方案。分辨自動創建的統計很簡單,在SQL Server 7.0和SQL Server 2000中,自動創建的統計的前綴爲_WA_Sys。

 

  個人感想:  

    以前對_WA_Sys開頭的統計信息一直不知道有什麼用,在學習了oracle時的CBO和三個算法(嵌套循環,合併連接和hash連接)才發現這個_WA_Sys開頭的統計信息和索引的統計信息對我們用戶沒用,對數據庫是很重要的。

 

   2, 統計信息內容:

dbcc show_statistics('[[zping.com]]]',idx_operator)

   運行上面命令以後,出來下列信息:    

Name         Updated                        Rows Rows      Sampled    Steps     Density           Average key length    String Index
idx_operator 
07 24 2008  8:15PM   721370          721370     200      0.002035875  63.99907               YES

 

 這裏的信息說明:

     name:統計信息的名稱。 Updated :上一次更新統計信息的日期和時間   

     Rows :表中的行數。 Rows Sampled :統計信息的抽樣行數。

     Steps:分發步驟數(在sql server最多200步)  Average key length :所有索引列的平均長度

   這些信息是對統計信息一個彙總

 

   還有下列信息:   

All density     Average Length   Columns
 
0.004219409   31.99907        operator

 

    All density :索引列前綴集的選擇性(頻繁) Average Length :索引列前綴集的平均長度。 Columns:索引列前綴的名稱

    還有包括數據統計的直方圖信息:

   

   3,  統計信息的作用:

       1,  index建立後,優化器是否使用該index,優化器需要藉助一些統計信息來做判斷

    2,根據統計信息,預估採用嵌套循環連接,合併連接, 哈希連接等哪一個連接

    3,根據統計信息判斷表的估計最佳的成本(最佳的執行順序),
 

   4, 統計信息自動建立:

      1,建立索引後,就會出現一個同名的統計信息

      2,一個列沒有統計信息,這時用他來關聯表和查詢數據,這時,系統會在評估最佳查詢計劃前,生成一個該列的"_WA_Sys"的統計信息。

   如下圖:這裏就包含(索引統計信息和列的統計信息)

 

  

 

     統計信息的更新和維護,由於數據的經常改變,統計信息是由sql server 2005自動維護的。可以手工更新統計信息:

  update statistics [[zping.com]]](_WA_Sys_creater_4C02DB92)  with fullscan

 

     更新表的統計信息,採集表中該列的全部數據。一般建議採用全部數據採集。保證統計信息的正確性

 

   5,  統計信息的設置

    系統是如何來設置更新和創建統計信息的?

    

   

      原來在創建數據庫時,系統自動設置了統計信息的屬性。這兩個屬性一般不要手工改動

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章