索引是 MS SQL 数据库文件的对象。这些架构对象的作用类似于数据库的目录。这些用于改进 MS SQL 数据库表上的数据检索作。
但是,随着时间的推移,表可能会因连续作而变得碎片化。此外,与其他对象一样,索引也容易损坏。如果索引损坏,您可能会收到如下错误:INSERTUPDATE
Table error: table 'Items' (ID 1954106002). Data row does not have a matching index row in the index 'IX_Advertise_BrandCopy_Price_Stock' (ID 69). Possible missing or invalid keys for the index row matching:
Msg 8955, Level 16, State 1, Line 1
Data row (1:11226494:9) identified by (Id = 11078215) with index values 'AdvertiseFlag = 1 and BrandCopyParentId = 0 and NSFPPrice = 137.50 and NSFPQtyInStock = 0 and Id = 11078215'.
Msg 8951, Level 16, State 1, Line 1
要解决与索引中的损坏相关的错误,或者当索引的碎片级别增加时,您可以重新生成或重新组织索引。在本文中,我们将讨论如何在 MS SQL Server 中重新组织和重建索引。我们还将提到一个高级 MS SQL 数据库修复工具,它可以快速、完全精确地从损坏的 SQL 数据库文件中恢复索引和其他对象。
检查索引的碎片百分比
在重新组织索引之前,您需要知道碎片的百分比。您可以使用以下命令检查索引碎片的百分比:
SELECT
OBJECT_NAME(object_id) tableName12,
index_id,
index_type_desc,
avg_fragmentation_in_percent,