亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

SQL Server 重新組織生成索引

2024-08-31 00:54:40
字體:
來源:轉載
供稿:網友
SQL Server 重新組織生成索引

標簽:SQL SERVER/MSSQL SERVER/數據庫/DBA/索引/統計信息

概述

無論何時對基礎數據執行插入、更新或刪除操作,SQL Server 數據庫引擎都會自動維護索引。隨著時間的推移,這些修改可能會導致索引中的信息分散在數據庫中(含有碎片)。當索引包含的頁中的邏輯排序(基于鍵值)與數據文件中的物理排序不匹配時,就存在碎片。碎片非常多的索引可能會降低查詢性能,導致應用程序響應緩慢,所以在日常的維護工作當中就需要對索引進行檢查對那些填充度很低碎片量大的索引進行重新生成或重新組織,但是在這個過程也需要注意一些小的細節,否則會產生錯誤。

正文

語法內容載自SQL Server聯機叢書,標記出了需要注意的內容,最后分享自己平時用的維護索引的語句供參考。

ALTER INDEX { index_name | ALL }    ON <object>    { REBUILD         [ [PARTITION = ALL]          [ WITH ( <rebuild_index_option> [ ,...n ] ) ]           | [ PARTITION = partition_number                 [ WITH ( <single_partition_rebuild_index_option>                        [ ,...n ] )                ]             ]        ]    | DISABLE    | REORGANIZE         [ PARTITION = partition_number ]        [ WITH ( LOB_COMPACTION = { ON | OFF } ) ]  | SET ( <set_index_option> [ ,...n ] )     }[ ; ]<object> ::={    [ database_name. [ schema_name ] . | schema_name. ]        table_or_view_name}<rebuild_index_option > ::={    PAD_INDEX = { ON | OFF }  | FILLFACTOR = fillfactor   | SORT_IN_TEMPDB = { ON | OFF }  | IGNORE_DUP_KEY = { ON | OFF }  | STATISTICS_NORECOMPUTE = { ON | OFF }  | ONLINE = { ON | OFF }   | ALLOW_ROW_LOCKS = { ON | OFF }  | ALLOW_PAGE_LOCKS = { ON | OFF }  | MAXDOP = max_degree_of_parallelism  | DATA_COMPRESSION = { NONE | ROW | PAGE }      [ ON PARTITIONS ( { <partition_number_expression> | <range> }      [ , ...n ] ) ]}<range> ::= <partition_number_expression> TO <partition_number_expression>}<single_partition_rebuild_index_option> ::={    SORT_IN_TEMPDB = { ON | OFF }  | MAXDOP = max_degree_of_parallelism  | DATA_COMPRESSION = { NONE | ROW | PAGE } }}<set_index_option>::={    ALLOW_ROW_LOCKS = { ON | OFF }  | ALLOW_PAGE_LOCKS = { ON | OFF }  | IGNORE_DUP_KEY = { ON | OFF }  | STATISTICS_NORECOMPUTE = { ON | OFF }}

index_name

索引的名稱。索引名稱在表或視圖中必須唯一,但在數據庫中不必唯一。索引名稱必須符合標識符的規則。

ALL

指定與表或視圖相關聯的所有索引,而不考慮是什么索引類型。如果有一個或多個索引脫機或不允許對一個或多個索引類型執行只讀文件組操作或指定操作,則指定 ALL 將導致語句失敗。下表列出了索引操作和不允許使用的索引類型。

已分區表和已分區索引。

database_name

數據庫的名稱。

schema_name

表或視圖所屬架構的名稱。

table_or_view_name

與該索引關聯的表或視圖的名稱。若要顯示對象的索引報表,請使用 sys.indexes 目錄視圖。

REBUILD [ WITH (<rebuild_index_option> [ ,...n]) ]

指定將使用相同的列、索引類型、唯一性屬性和排序順序重新生成索引。此子句等同于 DBCC DBREINDEX。REBUILD 啟用已禁用的索引。重新生成聚集索引并不重新生成關聯的非聚集索引,除非指定了關鍵字 ALL。如果未指定索引選項,則應用存儲在 sys.indexes 中的現有索引選項值。對于未在 sys.indexes 中存儲值的任何索引選項,應用該選項的參數定義中指示的默認值。

重新生成 xml 索引或空間索引時,選項 ONLINE = ON 和 IGNORE_DUP_KEY = ON 無效。

如果指定 ALL 且基礎表為堆,則重新生成操作對表沒有任何影響。重新生成與表相關聯的所有非聚集索引。

如果數據庫恢復模式設置為大容量日志記錄或簡單,則可以對重新生成操作進行最小日志記錄。

PARTITION

指定只重新生成或重新組織索引的一個分區。如果 index_name 不是已分區索引,則不能指定 PARTITION。

PARTITION = ALL 重新生成所有分區。當指定PARTITION = ALL時不能使用ONLINE = ON

partition_number

要重新生成或重新組織已分區索引的分區數。partition_number 是可以引用變量的常量表達式。其中包括用戶定義類型變量或函數以及用戶定義函數,但不能引用 Transact-SQL 語句。partition_number 必須存在,否則,該語句將失敗。

WITH (<single_partition_rebuild_index_option>)

SORT_IN_TEMPDB、MAXDOP 和 DATA_COMPRESSION 是在重新生成單個分區 (PARTITION = n) 時可以指定的選項。不能在單個分區重新生成操作中指定 XML 索引。

不能聯機重新生成分區索引。在此操作過程中將鎖定整個表。

DISABLE

將索引標記為已禁用,從而不能由 數據庫引擎使用。任何索引均可被禁用。已禁用的索引的索引定義保留在沒有基礎索引數據的系統目錄中。禁用聚集索引將阻止用戶訪問基礎表數據。若要啟用索引,請使用 ALTER INDEX REBUILD 或 CREATE INDEX WITH DROP_EXISTING。

REORGANIZE

指定將重新組織的索引葉級。此子句等同于 DBCC INDEXDEFRAG。ALTER INDEX REORGANIZE 語句始終聯機執行。這意味著不保留長期阻塞的表鎖,且對基礎表的查詢或更新可以在 ALTER INDEX REORGANIZE 事務處理期間繼續。不能為已禁用的索引或 ALLOW_PAGE_LOCKS 設置為 OFF 的索引指定 REORGANIZE。

WITH ( LOB_COMPACTION = { ON | OFF } )

指定壓縮所有包含大型對象 (LOB) 數據的頁。LOB 數據類型包括 image、text、ntextvarchar(max)、nvarchar(max)、varbinary(max)xml。壓縮此數據可以改善磁盤空間使用情況。默認值為 ON。

ON

壓縮所有包含大型對象數據的頁。

重新組織指定的聚集索引將壓縮聚集索引中包含的所有 LOB 列。重新組織非聚集索引將壓縮作為索引中非鍵(已包括)列的所有 LOB 列。有關詳細信息,請參閱創建帶有包含列的索引。

指定 ALL 時,將重新組織與指定表或視圖相關聯的所有索引,并且壓縮與聚集索引、基礎表或具有包含列的非聚集索引相關聯的所有 LOB 列。

OFF

不壓縮包含大型對象數據的頁。

OFF 對堆沒有影響。

如果 LOB 列不存在,則忽略 LOB_COMPACTION 子句。

SET ( <set_index option> [ ,...n] )

指定不重新生成或重新組織索引的索引選項。不能為已禁用的索引指定 SET。

PAD_INDEX = { ON | OFF }

指定索引填充。默認值為 OFF。

ON

FILLFACTOR 指定的可用空間百分比應用于索引的中間級頁。如果在 PAD_INDEX 設置為 ON 的同時不指定 FILLFACTOR,則使用 sys.indexes 中存儲的填充因子值。

OFF 或不指定 fillfactor

中間級頁已填充到接近容量限制。這樣將至少為索引可以基于中間頁中的鍵集擁有的最大大小的一行留出足夠的空間。

FILLFACTOR = fillfactor

指定一個百分比,指示在創建或更改索引期間,數據庫引擎對各索引頁的葉級填充的程度。fillfactor 必須為介于 1 至 100 之間的整數值。默認值為 0。

填充因子的值 0 和 100 在所有方面都是相同的。

顯式的 FILLFACTOR 設置只是在索引首次創建或重新生成時應用。數據庫引擎并不會在頁中動態保持指定的可用空間百分比。有關詳細信息,請參閱 CREATE INDEX (Transact-SQL)。

若要查看填充因子設置,請使用 sys.indexes

使用 FILLFACTOR 值創建或更改聚集索引會影響數據占用的存儲空間量,因為數據庫引擎在創建聚集索引時會再分發數據。

SORT_IN_TEMPDB = { ON | OFF }

指定是否在 tempdb 中存儲排序結果。默認值為 OFF。

ON

tempdb 中存儲用于生成索引的中間排序結果。如果 tempdb 位于不同于用戶數據庫的磁盤集中,這樣可能會縮短創建索引所需的時間。但是,這會增加索引生成期間所使用的磁盤空間量。

OFF

中間排序結果與索引存儲在同一數據庫中。

如果不需要執行排序操作,或者可以在內存中進行排序,則忽略 SORT_IN_TEMPDB 選項。

IGNORE_DUP_KEY = { ON | OFF }

指定在插入操作嘗試向唯一索引插入重復鍵值時的錯誤響應。IGNORE_DUP_KEY 選項僅適用于創建或重新生成索引后發生的插入操作。當執行 CREATE INDEX、ALTER INDEX 或 UPDATE 時,該選項無效。默認值為 OFF。

ON

向唯一索引插入重復鍵值時將出現警告消息。只有違反唯一性約束的行才會失敗。

OFF

向唯一索引插入重復鍵值時將出現錯誤消息。整個 INSERT 操作將被回滾。

對于對視圖創建的索引、非唯一索引、XML 索引、空間索引以及篩選的索引,IGNORE_DUP_KEY 不能設置為 ON。

若要查看 IGNORE_DUP_KEY,請使用 sys.indexes。

在向后兼容的語法中,WITH IGNORE_DUP_KEY 等效于 WITH IGNORE_DUP_KEY = ON。

STATISTICS_NORECOMPUTE = { ON | OFF }

指定是否重新計算分發統計信息。默認值為 OFF。

ON

不會自動重新計算過時的統計信息。

OFF

啟用統計信息自動更新功能。

若要恢復統計信息自動更新,請將 STATISTICS_NORECOMPUTE 設置為 OFF,或執行 UPDATE STATISTICS 但不包含 NORECOMPUTE 子句。

如果禁用分發統計信息的自動重新計算,可能會阻止查詢優化器為涉及該表的查詢挑選最佳執行計劃。

ONLINE = { ON | OFF }

指定在索引操作期間基礎表和關聯的索引是否可用于查詢和數據修改操作。默認值為 OFF。

對于 XML 索引或空間索引,僅支持 ONLINE = OFF。如果 ONLINE 設置為 ON,則會引發錯誤。

聯機索引操作僅在 SQL Server Enterprise Edition、Developer Edition 和 Evaluation Edition 中可用。

ON

在索引操作期間不持有長期表鎖。在索引操作的主要階段,源表上只使用意向共享 (IS) 鎖。這樣,即可繼續對基礎表和索引進行查詢或更新。操作開始時,將對源對象保持極短時間的共享 (S) 鎖。操作結束時,如果創建非聚集索引,將對源持有極短時間的 S 鎖;當聯機創建或刪除聚集索引時,或者重新生成聚集或非聚集索引時,將獲取 SCH-M(架構修改)鎖。對本地臨時表創建索引時,ONLINE 不能設置為 ON。

OFF

在索引操作期間應用表鎖。創建、重新生成或刪除聚集索引、空間索引或 XML 索引或者重新生成或刪除非聚集索引的脫機索引操作將獲得對表的架構修改 (Sch-M) 鎖。這樣可以防止所有用戶在操作期間訪問基礎表。創建非聚集索引的脫機索引操作將對表獲取共享 (S) 鎖。這樣可以防止更新基礎表,但允許讀操作(如 SELECT 語句)。

有關詳細信息,請參閱聯機索引操作的工作方式。有關鎖的詳細信息,請參閱鎖模式。

索引(包括全局臨時表中的索引)可以聯機重新生成,但以下索引除外:

  • 禁用的索引
  • XML 索引
  • 本地臨時表中的索引
  • 分區索引
  • 聚集索引(如果基礎表包含 LOB 數據類型)。
  • 使用 LOB 數據類型列定義的非聚集索引

如果表包含 LOB 數據類型,但這些列中沒有任何列在索引定義中用作鍵列或非鍵列,則可以聯機重新生成非聚集索引。

ALLOW_ROW_LOCKS
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美大荫蒂xxx| 亚洲欧美日韩精品久久奇米色影视| xxx一区二区| 国产精品视频最多的网站| 日韩中文在线中文网三级| 中文字幕日韩欧美在线视频| 精品中文字幕在线| 26uuu日韩精品一区二区| 亚洲另类激情图| 日韩欧美在线免费| 亚洲午夜激情免费视频| 亚洲欧美在线第一页| 欲色天天网综合久久| 日韩电影大全免费观看2023年上| 狠狠躁夜夜躁久久躁别揉| 日韩一区二区久久久| 久久欧美在线电影| 最近更新的2019中文字幕| 久久久伊人日本| 日韩视频免费看| 亚洲成人教育av| 欧洲日本亚洲国产区| 成人写真视频福利网| 亚洲一区二区在线| 伊人伊成久久人综合网小说| 精品无人区乱码1区2区3区在线| 国产成人精品久久亚洲高清不卡| 国产成人在线一区二区| 亚洲第一精品福利| 日韩hd视频在线观看| 日韩精品中文字幕在线观看| 欧美高清不卡在线| 欧美一二三视频| 欧美一级大片视频| 中文字幕亚洲综合久久筱田步美| 久久天天躁狠狠躁老女人| 国产欧美一区二区白浆黑人| 国产视频精品xxxx| 亚洲成人黄色网| 69视频在线播放| 国产欧美日韩中文字幕| 欧美精品成人在线| 国产精品99一区| 欧美日韩国产综合视频在线观看中文| 精品视频久久久久久久| 精品成人av一区| 色偷偷av一区二区三区| 国产成人av在线| 成人黄色在线观看| 亚洲黄一区二区| 亚洲国产天堂网精品网站| 国产一区二区黑人欧美xxxx| 亚洲男人天堂古典| 欧美成人精品三级在线观看| 26uuu另类亚洲欧美日本老年| 日韩欧美一区二区三区| 一区二区av在线| 国产成人一区二| 国产色婷婷国产综合在线理论片a| 538国产精品一区二区在线| 亚洲欧美日韩中文在线制服| 欧美视频在线观看 亚洲欧| 亚洲人在线视频| 亚洲精品xxxx| 欧美日韩成人在线播放| 午夜精品一区二区三区在线播放| 国产区精品在线观看| 欧美xxxx14xxxxx性爽| 日本一本a高清免费不卡| 国产精品海角社区在线观看| 91在线|亚洲| 欧美日韩午夜视频在线观看| 亚洲成av人乱码色午夜| 亚洲精品在线观看www| 国产在线拍揄自揄视频不卡99| 日韩亚洲在线观看| 久久免费视频在线观看| 亚洲护士老师的毛茸茸最新章节| 插插插亚洲综合网| 亚洲精品国产综合区久久久久久久| 亚洲成人精品在线| 欧美日韩一二三四五区| 国产69精品久久久久久| 亚洲激情在线视频| 亚洲激情视频在线播放| 国产精品一二区| 97精品一区二区视频在线观看| 欧美日韩国产精品| 久久久久久亚洲| 欧美猛男性生活免费| 亚洲娇小xxxx欧美娇小| 亚洲精品日韩久久久| 亚洲第一中文字幕| 日韩av网址在线观看| 成人午夜激情网| 国产精品国语对白| 国产精品亚洲自拍| 国产精品色午夜在线观看| 中文字幕精品国产| 人九九综合九九宗合| 久久久久中文字幕2018| 欧美在线国产精品| 国产亚洲精品美女| 欧美午夜性色大片在线观看| 欧美韩国理论所午夜片917电影| 秋霞成人午夜鲁丝一区二区三区| 欧美激情aaaa| 久久久久国产精品免费| 成人国产精品免费视频| 国产精品免费看久久久香蕉| 日韩av在线免费观看| 国产日韩精品视频| 精品五月天久久| 欧美丝袜一区二区| 视频一区视频二区国产精品| 91地址最新发布| 亚洲欧美激情另类校园| 成人午夜两性视频| 欧美黄色片在线观看| 欧美性猛交xxxx免费看久久久| 美女扒开尿口让男人操亚洲视频网站| 亚洲aaa激情| 久久天天躁狠狠躁夜夜躁2014| 国产香蕉97碰碰久久人人| 欧美大片免费观看| 黑人极品videos精品欧美裸| 国产欧美日韩精品在线观看| 日本精品免费一区二区三区| 成人黄色在线观看| 狠狠色狠狠色综合日日小说| 亚洲成人精品久久久| 91最新国产视频| 一本大道香蕉久在线播放29| 日韩在线视频观看| 国产成人高潮免费观看精品| 精品福利在线观看| 91亚洲国产成人久久精品网站| 亚洲精品欧美日韩专区| 一区二区三区高清国产| 亚洲嫩模很污视频| 日韩欧美在线观看视频| 亚洲国产天堂网精品网站| 欧美大奶子在线| 久久久视频免费观看| 中文字幕精品在线| 成人午夜小视频| 成人国产在线激情| 亚洲人成77777在线观看网| 亚洲sss综合天堂久久| 国产亚洲欧美另类中文| 欧美精品在线极品| 午夜欧美不卡精品aaaaa| 欧美日韩高清区| 另类天堂视频在线观看| 国产日韩中文字幕| 一区二区三区视频免费在线观看| 91av免费观看91av精品在线| 国产欧美日韩丝袜精品一区| 狠狠躁夜夜躁人人爽超碰91| 久久精品国产欧美激情| 亚洲美女视频网| 国内成人精品视频| 91久久久亚洲精品| 一本色道久久综合亚洲精品小说|