⑴ mssqlserver如何設置合適的索引填充因子
首拆李沒先,你必須做的是避免發生這類狀況,手動設置一個實例級的填充因子,也就是說填充因子將影響給定SQL Server實例中的所有表。 原因旅納很簡單:每張SQL Server表都有自己的操作特性,有其自身的需要。擾指 填充因子默認設置為100%
⑵ 資料庫中聚集索引、非聚集索引、填充因子的概念
索引有兩種類型,分別是聚集索引(clustered index,也稱聚類索引、簇集索引)和非聚集索引(nonclustered index,也稱非聚類索引、非簇集索引)。
聚集索引在一個表中只能有一個,默認情況下在主鍵建立的時候創建,它是規定數據在表中的物理存儲順序,我們也可以取消主鍵的聚集索引,所以必須考慮 資料庫可能用到的查詢類型以及使用的最為頻繁的查詢類型,對其最常用的一個欄位或者多個欄位建立聚集索引或者組合的聚集索引,它就是SQL Server會在物理上按升序(默認)或者降序重排數據列,這樣就可以迅速的找到被查詢的數據。
非聚集索主要是數據存儲在一個地方,索引存儲在另一個地方,索引帶有指針指向數據的存儲位置。索引中的項目按索引鍵值的順序存儲,而表中的信息按另 一種順序存儲。可以在一個表格中使用高達249個非聚集的索引,在查詢的過程中先對非聚集索引進行搜索,找到數據值在表中的位置,然後從該位置直接檢索數 據。這使非聚集索引成為精確匹配查詢的最佳方法,因為索引包含描述查詢所搜索的數據值在表中的精確位置的條目。
填充因子:
使用 fill factor 選項可以指定 Microsoft SQL Server 使用現有數據創建新索引時將每頁填滿到什麼程度。由於在頁填充時 SQL Server 必須花時間來拆分頁,因此填充因子會影響性能。
僅在創建或重新生成索引時使用填充因子。頁面不會維護在任何特定的填充水平上。
fill factor 的默認值為 0,有效值介於 0 和 100 之間。FILLFACTOR 設置為 0 或 100 時,葉級別幾乎完全填滿,但至少會保留一個其他索引行的空間。這樣設置後,葉級別空間會得到有效利用,而且仍有空間可以在必須拆分頁之前進行有限擴展。很少需要更改 fill factor 的默認值,因為可以使用 CREATE INDEX 或 ALTER INDEX REBUILD 語句來覆蓋其對於指定索引的值。
⑶ 填充因子的簡介
1.(計算機,資料庫,SQL,互聯網,技術中的應用)索引的一個特性,定義該索引每頁上的可用空間量。FILLFACTOR 適應以後表數據的擴展並減小了頁拆分的可能性。FILLFACTOR 是從 1 到 100 之間的某個值,指定索引頁保留為空的百分比。
2.(太陽電池中的應用)工作曲線中可獲得最大輸出功率點上的電流電壓乘積(IoptVopt) )與IscVoc(閉路電流和開路電壓乘積)之比,它體現電池的輸出功率隨負載的變動特性。
3.圖像感測器中的填充因子。亦譯為Fill Factor,指像素中感光部分面積與像素總面積的比值,FF值越高,則像素性能越好。例如,90%填充因子CCD中每個像素區域的10%是不感光的。
⑷ 如何檢查SQL Server索引填充因子
這是收藏的一些資料:
SQLServer提供了一個資料庫命令――DBCC SHOWCONTIG――來確定一個指定的表或索引是否有碎片。
示例:
顯示資料庫里所有索引的碎片信息
DBCC SHOWCONTIG WITH ALL_INDEXES
顯示指定表的所有索引的碎片信息
DBCC SHOWCONTIG (authors) WITH ALL_INDEXES
顯示指定索引的碎片信息
DBCC SHOWCONTIG (authors,aunmind)
DBCC 執行結果:
掃描頁數:如果你知道行的近似尺寸和表或索引里的行數,那麼你可以估計出索引里的頁數。看看掃描頁數,如果明顯比你估計的頁數要高,說明存在內部碎片。
掃描擴展盤區數:用掃描頁數除以8,四捨五入到下一個最高值。該值應該和DBCC SHOWCONTIG返回的掃描擴展盤區數一致。如果DBCC SHOWCONTIG返回的數高,說明存在外部碎片。碎片的嚴重程度依賴於剛才顯示的值比估計值高多少。
擴展盤區開關數:該數應該等於掃描擴展盤區數減1。高了則說明有外部碎片。
每個擴展盤區上的平均頁數:該數是掃描頁數除以掃描擴展盤區數,一般是8。小於8說明有外部碎片。
掃描密度[最佳值:實際值]:DBCC SHOWCONTIG返回最有用的一個百分比。這是擴展盤區的最佳值和實際值的比率。該百分比應該盡可能靠近100%。低了則說明有外部碎片。
邏輯掃描碎片:無序頁的百分比。該百分比應該在0%到10%之間,高了則說明有外部碎片。
擴展盤區掃描碎片:無序擴展盤區在掃描索引葉級頁中所佔的百分比。該百分比應該是0%,高了則說明有外部碎片。
每頁上的平均可用位元組數:所掃描的頁上的平均可用位元組數。越高說明有內部碎片,不過在你用這個數字決定是否有內部碎片之前,應該考慮fill factor(填充因子)。
平均頁密度(完整):每頁上的平均可用位元組數的百分比的相反數。低的百分比說明有內部碎片。
解決碎片問題 :
1. 刪除並重建索引
2. 使用DROP_EXISTING子句重建索引
3. 執行DBCC DBREINDEX
4. 執行DBCC INDEXDEFRAG
刪除並重建索引 :
用DROP INDEX和CREATE INDEX或ALTER TABLE來刪除並重建索引有些缺陷包括在刪除重建期間索引會消失。在索引刪除重建時,對於查詢它不在可用,查詢性能也許會受到明顯的影響,直到重建索引為止。另一個潛在的缺陷是當都請求索引的時候會引起阻塞,直到重建索引為止。通過其他的處理也能解決阻塞,就是索引被使用的時候不刪除索引。另一個主要的缺陷是在用DROP INDEX和CREATE INDEX重建聚集索引時會引起非聚集索引重建兩次。刪除聚集索引時非聚集索引的行指針會指向數據堆,聚集索引重建時非聚集索引的行指針又會指回聚集索引的行位置。
刪除並重建索引的確有一個好處就是通過重新排序索引頁,使索引頁緊湊並刪除不需要的索引頁來完全重建索引。你也許需要考慮那些內部和外部碎片都很高的情況下才使用,以使那些索引回到它們應該在的位置。
使用DROP_EXISTING子句重建索引 :
為了避免在重建聚集索引時表上的非聚集索引重建兩次,可以使用帶DROP_EXISTING子句的CREATE INDEX語句。這個子句會保留聚集索引鍵值,以避免非聚集索引重建兩次。和刪除並重建索引一樣,該方法也可能會引起阻塞和索引消失的問題。該方法的另一個缺陷是也強迫你去分別發現和修復表上的每一個索引。
⑸ sql server中fillfactor的作用
這是索引的填充因子,表示索引的填滿程度。對於不經常添加記錄的表,意義不大。如果表中經常填充大量數據,這個值可以略小一些,索引不至於一下子填滿。因為如果索引填滿的話,會導致索引頁產生碎片,造成數據訪問效率降低。如果該值設置為100,只要填入新數據,就會造成索引分頁。
⑹ SQL怎麼修改索引的填充因子
Proction.Proct表示Proction資料庫下Proct表
⑺ SQL SERVER中,什麼是填充因子
使用
fill
factor
選項可以指定
Microsoft
SQL
Server
使用現有數據創建新索引時將每頁填滿到什麼程度。由於在頁填充時
SQL
Server
必須花時間來拆分頁,因此填充因子會影響性能。
僅在創建或重新生成索引時使用填充因子。頁面不會維護在任何特定的填充水平上。
fill
factor
的默認值為
0,有效值介於
0
和
100
之間。FILLFACTOR
設置為
0
或
100
時,葉級別幾乎完全填滿,但至少會保留一個其他索引行的空間。這樣設置後,葉級別空間會得到有效利用,而且仍有空間可以在必須拆分頁之前進行有限擴展。很少需要更改
fill
factor
的默認值,因為可以使用
CREATE
INDEX
或
ALTER
INDEX
REBUILD
語句來覆蓋其對於指定索引的值。
⑻ mssql問題啊,關於索引,幫幫忙!
select * from 表名 where (index=索引名)
應該這樣吧,MSSQL自行判粗悔斷銀凳模直接使鋒緩用就可以了
⑼ 資料庫中聚集索引、非聚集索引、填充因子的概念
聚集索引(Clustered Index):對表的物理數據頁中的數據按列進行排序,然後再重新存儲到磁碟上,即如果說在一個表中建立了聚集索引,則表中的數據頁會在會按照索引的順序來存放
非聚集索引(Nonclustered Index):具有完全獨立於數據行的結構,使用非聚集索引不用將物理數據頁中的數據按列排序,即非聚集索引不會影響數據表中記錄的實際存儲順序。非聚集索引的葉節點存儲了組成非聚集索引的關鍵字值和行定位器。
填充因子:指索引中一個葉子節點的填充率,若都填滿就是100%,若填充率為50%,則只有一半的數據
⑽ 填充因子是什麼意思,有什麼用通俗一點哦
打個比方,為了給一個班的100個同學排一下順序,我們可以給每一位同學一個編號,如:
a. 從1,2,3,4,5,6,7,.....100。這時,我們說填充因子是100.
此時,如果又來了新同學,而其排名要在中間某位置的話,我們就要改變許多個同學的號碼,如新同學排5號,就需要將5號以後的同學號碼都加1才行.
b.我們又可以給同學這樣編號:10,20,30,40,50,60,70.......1000
也同樣完成了順序的排列.我們說這時填充因子是0,此時如果來了新同學,又是排在第七位的話,那麼我們只許將其號碼編為65就行了.其它同學都不用變.
可以看出,填充因子大的時候,點用的號碼空間小,耗費資源少,小的時候呢,佔用資源加大,但操作方便,迅速.
所以,在SQL2000O中索引的填充因子就是這個道理,填充因子大的時候,插入或修改記錄後重新索引的工作會很大,磁碟IO操作增加,性能必然降,但其佔用空間小.填充因子小的時候呢,索引文件佔用磁碟及內存空間相對要大,但是,系統身重新索引所需IO操作減少,性能提高,只是多佔用一些存儲空間.
因此,孰重孰輕自已決定就行了.....