資料庫索引的填滿因數

來源:互聯網
上載者:User

標籤:

  舉個例子:假定你剛剛用預設的填滿因數新建立了一個索引。當sqlserver建立它時,它把索引放在相鄰的物理頁面上,因為資料能夠順序的讀所以這樣會有最優的i/o訪問。但當表隨著、、增加和改變時,發生了頁面分割。當頁面分割發生時,sqlserver必須在磁碟的某處分配一個新的頁,這些新的頁和最初的物理頁不是連續的。因此,訪問使用的是隨機的i/o,而不是有順序的i/o,這樣訪問索引頁會變得更慢。
   
   那麼理想的填滿因數是多少呢?它依賴於應用程式對sqlserver表的讀和寫的比率。首要的原則,按照下面的指導:
   
   低更改的表(讀寫比率為100:1):100%的填滿因數
   
   高更改的表(寫超過讀):50-70%的填滿因數
   
   讀寫各一半的:80-90%的填滿因數
   
   在為應用程式找到最優的填滿因數前也不得不進行實驗。不要假定一個低的填滿因數總比高的好。低的填滿因數會減少頁面分割,它也增加了sqlserver查詢期間讀的頁數量,從而減少效能。太低的填滿因數不僅增加i/o開銷,也影響緩衝。當資料頁從磁碟移到緩衝中時,整個頁(包括空的空間)都移到緩衝中。所以填滿因數越低,不得不移到sqlserver緩衝中的頁面就越多,意味著同時為其他重要資料頁駐留的空間就少,從而降低效能。
   
   如果你沒有指定填滿因數,預設的填滿因數時0,意味著100%的填滿因數(索引的葉頁100%的填滿,但索引的中間頁有預留的空間)。
   
   作為監控的一部分,你要決定建立索引或重建索引時的填滿因數是多少。事實上,除了唯讀資料庫,所有的情況,預設值0都是不適合的。相反,你想要一個填滿因數保留合適的自由空間,按照上面的討論來做。

轉自:娃酷分類網:http://www.waaku.com/InfoView293270.html

資料庫索引的填滿因數

聯繫我們

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