太陽(yáng)電池的填充因子_光伏中填充因子的概念_sql索引的填充因子多少最好,填充因子有什么用
本文關(guān)鍵詞:填充因子,由筆耕文化傳播整理發(fā)布。
sql索引的填充因子多少最好,填充因子有什么用
和索引重建最相關(guān)的是填充因子。當(dāng)創(chuàng)建一個(gè)新索引,,或重建一個(gè)存在的索引時(shí),你可以指定一個(gè)填充因子,它是在索引創(chuàng)建時(shí)索引里的數(shù)據(jù)頁(yè)被填充的數(shù)量。填充因子設(shè)置為100意味著每個(gè)索引頁(yè)100%填滿,50%意味著每個(gè)索引頁(yè)50%填滿。
如果你創(chuàng)建一個(gè)填充因子為100的聚集索引(在一個(gè)非單調(diào)遞增的列上),那意味著每當(dāng)一個(gè)記錄被插入(或修改)時(shí),頁(yè)拆分都會(huì)發(fā)生,因?yàn)樵诂F(xiàn)存的頁(yè)上沒(méi)有這些數(shù)據(jù)的空間。很多的頁(yè)拆分會(huì)降低sqlserver的性能。
舉個(gè)例子:假定你剛剛用缺省的填充因子新創(chuàng)建了一個(gè)索引。當(dāng)sqlserver創(chuàng)建它時(shí),它把索引放在相鄰的物理頁(yè)面上,因?yàn)閿?shù)據(jù)能夠順序的讀所以這樣會(huì)有最優(yōu)的i/o訪問(wèn)。但當(dāng)表隨著、、增加和改變時(shí),發(fā)生了頁(yè)拆分。當(dāng)頁(yè)拆分發(fā)生時(shí),sqlserver必須在磁盤(pán)的某處分配一個(gè)新的頁(yè),這些新的頁(yè)和最初的物理頁(yè)不是連續(xù)的。因此,訪問(wèn)使用的是隨機(jī)的i/o,而不是有順序的i/o,這樣訪問(wèn)索引頁(yè)會(huì)變得更慢。
那么理想的填充因子是多少呢?它依賴于應(yīng)用程序?qū)qlserver表的讀和寫(xiě)的比率。首要的原則,按照下面的指導(dǎo):
低更改的表(讀寫(xiě)比率為100:1):100%的填充因子
高更改的表(寫(xiě)超過(guò)讀):50-70%的填充因子
讀寫(xiě)各一半的:80-90%的填充因子
在為應(yīng)用程序找到最優(yōu)的填充因子前也不得不進(jìn)行試驗(yàn)。不要假定一個(gè)低的填充因子總比高的好。低的填充因子會(huì)減少頁(yè)拆分,它也增加了sqlserver查詢期間讀的頁(yè)數(shù)量,從而減少性能。太低的填充因子不僅增加i/o開(kāi)銷,也影響緩存。當(dāng)數(shù)據(jù)頁(yè)從磁盤(pán)移到緩存中時(shí),整個(gè)頁(yè)(包括空的空間)都移到緩存中。所以填充因子越低,不得不移到sqlserver緩存中的頁(yè)面就越多,意味著同時(shí)為其他重要數(shù)據(jù)頁(yè)駐留的空間就少,從而降低性能。
如果你沒(méi)有指定填充因子,缺省的填充因子時(shí)0,意味著100%的填充因子(索引的葉頁(yè)100%的填滿,但索引的中間頁(yè)有預(yù)留的空間)。
作為監(jiān)控的一部分,你要決定新建索引或重建索引時(shí)的填充因子是多少。事實(shí)上,除了只讀數(shù)據(jù)庫(kù),所有的情況,缺省值0都是不適合的。相反,你想要一個(gè)填充因子保留合適的自由空間,按照上面的討論來(lái)做。
轉(zhuǎn)自:娃酷分類網(wǎng):
posted @
本文關(guān)鍵詞:填充因子,由筆耕文化傳播整理發(fā)布。
本文編號(hào):85795
本文鏈接:http://sikaile.net/wenshubaike/jyzy/85795.html