中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

索引碎片整理

發布時間:2020-08-10 23:46:14 來源:ITPUB博客 閱讀:158 作者:stephenjwq 欄目:關系型數據庫
查詢是否發生了索引碎片
SELECT object_name(dt.object_id) Tablename,si.name Indexname,dt.avg_fragmentation_in_percent AS ExternalFragmentation,
dt.avg_page_space_used_in_percent AS internalFragmentation
FROM
(
SELECT object_id,index_id,avg_fragmentation_in_percent,avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats (db_id('SmartTRMUAES'),null,null,null,'DETAILED')
WHERE index_id <> 0) AS dt
INNER JOIN sys.indexes si ON si.object_id=dt.object_id
AND si.index_id=dt.index_id AND dt.avg_fragmentation_in_percent>10
AND dt.avg_page_space_used_in_percent<75 ORDER BY avg_fragmentation_in_percent
DESC
使用下面的規則分析結果,你就可以找出哪里發生了索引碎片:
1)ExternalFragmentation的值>10表示對應的索引發生了外部碎片;
2)InternalFragmentation的值<75表示對應的索引發生了內部碎片。
如何整理索引碎片?
有兩種整理索引碎片的方法:
1)重組有碎片的索引:執行下面的命令
ALTER INDEX ALL ON TableName REORGANIZE
2)重建索引:執行下面的命令
ALTER INDEX ALL ON TableName REBUILD WITH (FILLFACTOR=90,ONLINE=ON)
也可以使用索引名代替這里的“ALL”關鍵字重組或重建單個索引,也可以使用SQL Server管理工作臺進行索引碎片的整理。
什么時候用重組,什么時候用重建呢?
  當對應索引的外部碎片值介于10-15之間,內部碎片值介于60-75之間時使用重組,其它情況就應該使用重建。
  值得注意的是重建索引時,索引對應的表會被鎖定,但重組不會鎖表,因此在生產系統中,對大表重建索引要慎重,因為在大表上創建索引可能會花幾個小時,幸運的是,從SQL Server 2005開始,微軟提出了一個解決辦法,在重建索引時,將ONLINE選項設置為ON,這樣可以保證重建索引時表仍然可以正常使用。
  雖然索引可以提高查詢速度,但如果你的數據庫是一個事務型數據庫,大多數時候都是更新操作,更新數據也就意味著要更新索引,這個時候就要兼顧查詢和更新操作了,因為在OLTP數據庫表上創建過多的索引會降低整體數據庫性能。
  我給大家一個建議:如果你的數據庫是事務型的,平均每個表上不能超過5個索引,如果你的數據庫是數據倉庫型,平均每個表可以創建10個索引都沒問題。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平顺县| 浑源县| 通许县| 西盟| 甘泉县| 仁布县| 金塔县| 宁强县| 靖远县| 闻喜县| 榆社县| 仪征市| 名山县| 赞皇县| 郸城县| 诸暨市| 芜湖市| 醴陵市| 江陵县| 大荔县| 多伦县| 西和县| 锡林浩特市| 和林格尔县| 龙口市| 濉溪县| 突泉县| 南和县| 塘沽区| 望都县| 皮山县| 三原县| 曲阜市| 柘城县| 惠水县| 改则县| 扶余县| 贵南县| 工布江达县| 濉溪县| 乳山市|