欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

[點晴永久免費OA]SQLServer索引碎片的整理

admin
2020年11月13日 9:8 本文熱度 3661
  你可能已經創建好了索引,并且所有索引都在工作,但性能卻仍然不好,那很可能是產生了索引碎片,你需要進行索引碎片整理。

  什么是索引碎片?
  由于表上有過度地插入、修改和刪除操作,索引頁被分成多塊就形成了索引碎片,如果索引碎片嚴重,那掃描索引的時間就會變長,甚至導致索引不可用,因此數據檢索操作就慢下來了。
  有兩種類型的索引碎片:內部碎片和外部碎片。
  內部碎片:為了有效的利用內存,使內存產生更少的碎片,要對內存分頁,內存以頁為單位來使用,最后一頁往往裝不滿,于是形成了內部碎片。
  外部碎片:為了共享要分段,在段的換入換出時形成外部碎片,比如5K的段換出后,有一個4k的段進來放到原來5k的地方,于是形成1k的外部碎片。

  如何知道是否發生了索引碎片?
  執行下面的SQL語句就知道了(下面的語句可以在SQL Server 2005及后續版本中運行,用你的數據庫名替換掉這里的AdventureWorks):

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(''AdventureWorks''),null,null,null,''DETAILED''

  )

  
WHERE index_id <>
0AS 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

  執行后顯示AdventureWorks數據庫的索引碎片信息。


  圖 1 索引碎片信息
  使用下面的規則分析結果,你就可以找出哪里發生了索引碎片:
  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管理工作臺進行索引碎片的整理。


  圖 2 使用SQL Server管理工作臺整理索引碎片

  什么時候用重組,什么時候用重建呢?
  當對應索引的外部碎片值介于10-15之間,內部碎片值介于60-75之間時使用重組,其它情況就應該使用重建。
  值得注意的是重建索引時,索引對應的表會被鎖定,但重組不會鎖表,因此在生產系統中,對大表重建索引要慎重,因為在大表上創建索引可能會花幾個小時,幸運的是,從SQL Server 2005開始,微軟提出了一個解決辦法,在重建索引時,將ONLINE選項設置為ON,這樣可以保證重建索引時表仍然可以正常使用。
  雖然索引可以提高查詢速度,但如果你的數據庫是一個事務型數據庫,大多數時候都是更新操作,更新數據也就意味著要更新索引,這個時候就要兼顧查詢和更新操作了,因為在OLTP數據庫表上創建過多的索引會降低整體數據庫性能。
  我給大家一個建議:如果你的數據庫是事務型的,平均每個表上不能超過5個索引,如果你的數據庫是數據倉庫型,平均每個表可以創建10個索引都沒問題。

該文章在 2020/11/13 9:08:04 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved