![]() |
害羞的黄瓜 · unigui用TNetHTTPClient提 ...· 3 月前 · |
![]() |
近视的沙发 · 《斗罗大陆魂师对决》全民对决阵容推荐 ...· 5 月前 · |
![]() |
无邪的灌汤包 · 3dmax2018注册机下载和64位激活教程 ...· 5 月前 · |
![]() |
大鼻子的大熊猫 · 拜托了冰箱(JTBC电视台料理类脱口秀节目) ...· 5 月前 · |
![]() |
销魂的香菜 · 「觅苏记」黄州东坡:东坡居士之号的起源地(下 ...· 6 月前 · |
重新生成索引将会删除并重新创建索引。重新生成操作可以脱机或联机执行,具体取决于索引类型和数据库引擎版本。脱机索引重新生成耗费的时间通常比联机重新生成少,但它会在重新生成操作持续期间保留对象级锁,阻止查询访问表或视图。
联机索引重新生成操作结束时才需要对象级锁,届时必须将锁短暂保留一段时间,重新生成才能完成。联机索引重新生成可以作为可恢复的操作启动,具体取决于数据库引擎的版本。可恢复的索引重新生成操作可以暂停,并保留截至到该时刻完成的进度。可恢复的重新生成操作可以在暂停或中断后恢复,也可在无需完成重新生成时中止。
索引执行联机重新生成时,对索引列中数据的每个修改都必须更新该索引的其他副本。这可能会导致数据修改语句的性能在执行联机重新生成期间略微下降。
可恢复的联机索引操作暂停时,这会继续影响此性能,直到此可恢复的操作完成或中止。 如果不打算完成可恢复的索引操作,请将其中止,而不要暂停它。
根据可用的资源和工作负荷模式,在 MAXDOP 语句中指定高于默认 MAXDOP 值的时间可能会缩短重建的持续时间,但代价是 CPU 使用率较高。
对于行存储索引,重新生成会消除索引的所有级别中的碎片,并根据指定的或当前的填充因子来压缩页面。 如果指定 ALL ,将通过单个操作删除表中的所有索引并重新生成它们。 重新生成具有 128 个或更多个区的索引时,数据库引擎延迟页释放并获取关联的锁,直到重建完成。 有关语法示例,请参阅示例 - 行存储重新生成。
对于列存储索引,重新生成会消除碎片,将任何增量存储行移到列存储中,并以物理方式删除标记为已删除的行。
使用 SQL Server Management Studio
使用 SQL Server Management Studio 批量操作
使用 Transact-SQL
下面的示例在 AdventureWorks 数据库中重新生成现有联机索引。
ALTER INDEX AK_Employee_NationalIDNumber
ON HumanResources.Employee
REBUILD WITH (ONLINE = ON);