亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[點(diǎn)晴永久免費(fèi)OA]SQLServer索引碎片的整理

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

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

  如何知道是否發(fā)生了索引碎片?
  執(zhí)行下面的SQL語句就知道了(下面的語句可以在SQL Server 2005及后續(xù)版本中運(yùn)行,用你的數(shù)據(jù)庫名替換掉這里的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

  執(zhí)行后顯示AdventureWorks數(shù)據(jù)庫的索引碎片信息。


  圖 1 索引碎片信息
  使用下面的規(guī)則分析結(jié)果,你就可以找出哪里發(fā)生了索引碎片:
  1)ExternalFragmentation的值>10表示對應(yīng)的索引發(fā)生了外部碎片;
  2)InternalFragmentation的值<75表示對應(yīng)的索引發(fā)生了內(nèi)部碎片。

  如何整理索引碎片?
  有兩種整理索引碎片的方法:
  1)重組有碎片的索引:執(zhí)行下面的命令
  ALTER INDEX ALL ON TableName REORGANIZE
  2)重建索引:執(zhí)行下面的命令
  ALTER INDEX ALL ON TableName REBUILD WITH (FILLFACTOR=90,ONLINE=ON)
  也可以使用索引名代替這里的“ALL”關(guān)鍵字重組或重建單個(gè)索引,也可以使用SQL Server管理工作臺進(jìn)行索引碎片的整理。


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

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

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