国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

重建索引提高查詢效率

2024-07-21 02:48:00
字體:
來源:轉載
供稿:網友
重建索引提高查詢效率

sqlserver重建(rebuild)索引可以提高查詢速度

當隨著表的數據量不斷增長,很多存儲的數據進行了不適當的跨頁(sqlserver中存儲的最小單位是頁,頁是不不可再分的),會產生很多索引的碎片。這時候需要重建索引來提高查詢性能

SQLServer2005在硬盤中用8KB頁面在數據庫文件內存放數據。缺省情況下這些頁面及其包含的數據是無組織的。為了使混亂變為有序,就要生成索引。生成索引后,就有了索引頁和數據頁之分:數據頁用來保存用戶寫入的數據信息;索引頁存放用于檢索列的數據值清單(關鍵字)和索引表中該值所在紀錄的地址指針。索引分為簇索引和非簇索引,簇索引實質上是將表中的數據排序,就好像是字典的索引目錄。非簇索引不對數據排序,它只保存了數據的地址。向一個帶簇索引的表中插入數據,當數據頁達到100%時,由于頁面沒有空間插入新的的紀錄,這時就會發生分頁,SQLServer將大約一半的數據從滿頁中移到空頁中,從而生成兩個1/2滿頁。這樣就有大量的空的數據空間。簇索引是雙向鏈表,在每一頁的頭部保存了前一頁、后一頁以及分頁后數據移出的地址。由于新頁可能在數據庫文件中的任何地方,因此頁面的鏈接不一定指向磁盤的下一個物理頁。鏈接可能指向了另一個區域,這就形成了分塊,從而減慢了系統的速度。對于帶簇索引和非簇索引的表來說,非簇索引的關鍵字是指向簇索引的,而不是指向數據頁的本身。

為了克服數據分塊帶來的負面影響,需要重構表的索引,這是非常費時的,因此只能在需要時進行。可以通過DBCC SHOWCONTIG來確定是否需要重構表的索引。

DBCC SHOWCONTIG(TABLE_NAME)

返回結果:

DBCC SHOWCONTIG 正在掃描 'TABLE_NAME' 表...表: 'TABLE_NAME' (128211707);索引 ID: 1,數據庫 ID: 5已執行 TABLE 級別的掃描。- 掃描頁數................................: 564273- 掃描區數..............................: 70543- 區切換次數..............................: 70543- 每個區的平均頁數........................: 8.0- 掃描密度 [最佳計數:實際計數].......: 99.99% [70535:70544]- 邏輯掃描碎片 ..................: 0.01%- 區掃描碎片 ..................: 2.52%- 每頁的平均可用字節數........................: 684.6- 平均頁密度(滿).....................: 91.54%DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。

最佳計數為70535,實際計數為70544,這表明該表有分塊,需要重構表索引,掃描密度為100%則表示沒有分塊

如何查看索引的使用情況:SELECT index_type_desc,alloc_unit_type_desc,avg_fragmentation_in_percent,fragment_count,avg_fragment_size_in_pages,page_count,record_count,avg_page_space_used_in_percentFROM sys.dm_db_index_physical_stats(DB_ID('db_name'),OBJECT_ID('table_name),NULL,NULL,'Sampled')

上面的語句是查詢數據庫db_name的表table_name的索引使用情況。

查詢結果中的列avg_fragment_size_in_pages值超過40%就需要重建索引

重建索引

ALTER INDEX 索引名 ON 表名 REBUILD


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昭苏县| 谢通门县| 淅川县| 昌黎县| 随州市| 天峻县| 宁陵县| 乐平市| 竹山县| 鹰潭市| 胶州市| 霍林郭勒市| 四川省| 教育| 兴仁县| 将乐县| 永胜县| 甘谷县| 永定县| 化隆| 灵宝市| 耒阳市| 沙坪坝区| 邛崃市| 金门县| 古蔺县| 五寨县| 巨野县| 洞头县| 吴堡县| 怀宁县| 苍梧县| 呼伦贝尔市| 南丹县| 电白县| 涪陵区| 南投市| 探索| 岑溪市| 孙吴县| 恩施市|