sqlserver索引重建和索引重組有什么區(qū)別-創(chuàng)新互聯(lián)

這篇文章主要介紹“sqlserver索引重建和索引重組有什么區(qū)別”,在日常操作中,相信很多人在sqlserver索引重建和索引重組有什么區(qū)別問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”sqlserver索引重建和索引重組有什么區(qū)別”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)建站主營(yíng)西雙版納網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件開發(fā),西雙版納h5小程序開發(fā)搭建,西雙版納網(wǎng)站營(yíng)銷推廣歡迎西雙版納等地區(qū)企業(yè)咨詢

ALTER INDEX REORGANIZE重新組織索引使用的系統(tǒng)資源最少,并且是聯(lián)機(jī)操作。也就是說,不保留長(zhǎng)期阻塞性表鎖,且對(duì)基礎(chǔ)表的查詢或更新可以在ALTER INDEX REORGANIZE事務(wù)處理期間繼續(xù)進(jìn)行。

ALTER INDEX REBUILD重新生成索引會(huì)刪除并重新創(chuàng)建索引。這可以聯(lián)機(jī)完成,也可以脫機(jī)完成,重新生成索引聯(lián)機(jī)執(zhí)行(ON),則索引操作期間可以用此表中的數(shù)據(jù)進(jìn)行查詢和修改數(shù)據(jù)。默認(rèn)為OFF。

重建表上的所有索引

alter index all on table_name rebuild with (>

重建表上的某個(gè)索引

alter index index_name on table_name rebuild with (>

重新組織表上的所有索引

alter index all on table_name reorganize

重新組織表上的某個(gè)索引

alter index index_name on table_name reorganize

總結(jié):

1、sqlserve建議使用ALTER INDEX語句來重建或重組索引,已經(jīng)不推薦使用DBCC INDEXDEFRAG、DBCC DBREINDEX

2、重新組織索引是在線重整Index,不會(huì)對(duì)Table鎖定,重新生成索引會(huì)對(duì)Table進(jìn)行鎖定,當(dāng)然重新生成索引期間加上>

3、重新組織索引的100%進(jìn)度可以通過sys.dm_exec_requests的字段percent_complete來看,重新生成索引無法通過該方法來看

/tupian/20230521/dbcc-indexdefrag-transact-sql INDEXDEFRAG

(

{ database_name | database_id | 0 }

, { table_name | table_id | view_name | view_id }

[ , { index_name | index_id } [ , { partition_number | 0 } ] ]

)

[ WITH NO_INFOMSGS ]

比如DBCC INDEXDEFRAG(DB1, TABLE1, INDEX1) WITH NO_INFOMSGS

database_name | database_id | 0

包含要進(jìn)行碎片整理的索引的數(shù)據(jù)庫(kù)。 如果指定 0,則使用當(dāng)前數(shù)據(jù)庫(kù)。

table_name | table_id | view_name | view_id

包含要進(jìn)行碎片整理的索引的表或視圖。

index_name | index_id

要進(jìn)行碎片整理的索引的名稱或 ID。 如果未指定,該語句將針對(duì)指定表或視圖的所有索引進(jìn)行碎片整理。

partition_number | 0

要進(jìn)行碎片整理的索引的分區(qū)號(hào)。 如果未指定或指定 0,該語句將對(duì)指定索引的所有分區(qū)進(jìn)行碎片整理。

DBCC INDEXDEFRAG 對(duì)索引的葉級(jí)進(jìn)行碎片整理,以便頁(yè)的物理順序與葉節(jié)點(diǎn)從左到右的邏輯順序相匹配,因此可提高索引掃描性能。

與 DBCC DBREINDEX(或通常的索引生成操作)不同,DBCC INDEXDEFRAG 是聯(lián)機(jī)操作。 它不長(zhǎng)期保持鎖。 因此,DBCC INDEXDEFRAG 不會(huì)阻塞運(yùn)行查詢或更新。 因?yàn)樗槠硭璧臅r(shí)間與碎片整理的級(jí)別相關(guān),若索引的碎片相對(duì)較少,則該索引的碎片整理速度比生成一個(gè)新索引要快。 對(duì)碎片太多的索引進(jìn)行整理可能要比重建索引花更多的時(shí)間。

/tupian/20230521/dbcc-dbreindex-transact-sql DBREINDEX (table_name[ , index_name [ , fillfactor ] ]) [ WITH NO_INFOMSGS ]

比如DBCC DBREINDEX(TABLE1, '', 0)

table_name

包含要重新生成的指定索引的表的名稱。

index_name

要重新生成的索引名。 索引名稱必須符合標(biāo)識(shí)符規(guī)則。 如果已指定 index_name,則必須指定 table_name 。 如果未指定 index_name 或者該值為“ ”,則重新生成表的所有索引 。

fillfactor

在創(chuàng)建或重新生成索引時(shí),每個(gè)索引頁(yè)上用于存儲(chǔ)數(shù)據(jù)的空間的百分比。 創(chuàng)建索引后,fillfactor 將替換填充因子,從而成為該索引以及重新生成的任何其他非聚集索引(因?yàn)橹匦律闪司奂饕?的新默認(rèn)值 。

當(dāng) fillfactor 為 0 時(shí),DBCC DBREINDEX 將使用上次為索引指定的填充因子值 。 該值存儲(chǔ)在 sys.indexes 目錄視圖中 。

如果已指定 fillfactor,則必須指定 index_name 。 如果未指定 fillfactor,則使用默認(rèn)填充因子 100 。

DBCC DBREINDEX 重新生成表的一個(gè)索引或?yàn)楸矶x的所有索引。 通過允許動(dòng)態(tài)重新生成索引,可以重新生成強(qiáng)制 PRIMARY KEY 或 UNIQUE 約束的索引,而不必刪除并重新創(chuàng)建這些約束。 這意味著無需了解表的結(jié)構(gòu)或其約束,即可重新生成索引。 這可能在將數(shù)據(jù)大容量復(fù)制到表中以后發(fā)生。

DBCC DBREINDEX 可以在一條語句中重新生成表的所有索引。 這要比對(duì)多條 DROP INDEX 和 CREATE INDEX 語句進(jìn)行編碼更容易。 由于這項(xiàng)工作是通過一條語句執(zhí)行的,因此 DBCC DBREINDEX 自動(dòng)成為原子性的,而單個(gè) DROP INDEX 和 CREATE INDEX 語句則必須包含在事務(wù)中才能成為原子性的。 此外,DBCC DBREINDEX 提供了比單個(gè) DROP INDEX 和 CREATE INDEX 語句更多的優(yōu)化性能。

與 DBCC INDEXDEFRAG 或具有 REORGANIZE 選項(xiàng)的 ALTER INDEX 不同,DBCC DBREINDEX 是一個(gè)脫機(jī)操作。 如果重新生成了非聚集索引,則在該操作的持續(xù)時(shí)間內(nèi),相關(guān)表持有共享鎖。 這可以禁止對(duì)表進(jìn)行修改。 如果重新生成了聚集索引,則持有排他表鎖。 這可以禁止任何表訪問,因此可以有效地使表脫機(jī)。 為了執(zhí)行聯(lián)機(jī)索引重新生成,或控制索引重新生成操作期間的并行度,可使用具有 ONLINE 選項(xiàng)的 ALTER INDEX REBUILD 語句。

到此,關(guān)于“sqlserver索引重建和索引重組有什么區(qū)別”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

當(dāng)前名稱:sqlserver索引重建和索引重組有什么區(qū)別-創(chuàng)新互聯(lián)
文章鏈接:http://muchs.cn/article38/cddcpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、動(dòng)態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站建設(shè)App開發(fā)、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)