9

我们有一个巨大的表,我需要在其中对单行进行更新。我不知道该行的主键,但我有一个在该表中唯一的 varchar 值。我还有该表中其他几列的值。

运行更新需要三分钟以上,我假设它会进行全表扫描。

查看表上的索引,列上的索引的基数为零,页数为零。还有其他索引的基数等于表中的行数(几百万)和几十万的页数。

这些数字实际上意味着什么?

作为后续,添加一个限制以达到更高基数或页数的索引会加快执行速度吗?或者还有什么我可以查看索引以找到更适合快速找到我需要更改的行的内容。

4

1 回答 1

7

基数是表中该字段的唯一值的数量。

我怀疑 SQL Server 实际上并没有创建索引,因为它没有记录。这个字段是否可能都是NULLs,或者上面有一个过滤器可以消除所有记录,例如WHERE 1=0

一个好的起点是运行更新并捕获实际的执行计划。

编辑:

索引类型 3 是一个XML Index.

请参阅此页面以供参考。

索引的结构XML有很大不同。我自己不使用它们,但从一些快速阅读来看,它听起来像是创建了一系列用户无法直接访问但被查询引擎使用的附加索引。

于 2011-06-30T15:31:40.913 回答