SQL Server 統計資訊對查詢的影響

來源:互聯網
上載者:User

標籤:sp   strong   資料   on   bs   時間   as   資料庫   sql   

最佳化器根據開消確定選擇哪個執行計畫,開消又與行數統計資訊有關,預設情況下統計資訊是在最佳化的過程中自動產生的。

一旦列被標記為需要統計資訊,查詢最佳化工具就會尋找該列以有的統計資訊,如果以有一個統計資訊,下一步就會對它進行,檢查

以確定它足夠新。如果到期就重建統計資訊。(由此可見統計資訊是基於列的)。

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

在資料庫中自動建立統計資訊的選項預設開啟:

alter database .... set auto_create_statistics {on | off};

alter database .... set auto_update_statistics {on | off};

如果系統的自動建立被禁用,查詢會輸出一條警告。在這個模式下DBA 要保證統計資訊對象是最新的。

可以對操作進行提示來控制統計資訊對象的行為。

create index .... with(statistics_norecompute = on)

create statistics .... with(norecompute)

雖然這一些選項一般來說是開啟的,但是下面情況可禁用建立或更新統計資料的功能。

  1、DBA 明確決定更新統計資料而不是自動更新,資料庫有一個維護視窗,這種情況下是DBA 相信統計資訊改變會使

    最佳化器選擇一種比較慢的計劃

  2、資料表太大、自動更新發的時間太長。

  3、資料庫表中有許多的唯一值,用於產生統計資訊的採樣頻率不足以擷取產生一個優良執行計畫所需的所有統計資訊。

    DBA 可以利用一個維護視窗提高採樣頻率(預設頻率會根據表大小而變化)手動更新統計資料。

  4、資料庫定義了一個很短的查詢逾時並且不希望自動統計資訊造成查詢時間明顯長很多,因為這樣可能會引起查詢逾時。

 

SQL Server 統計資訊對查詢的影響

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.