更新表的统计信息

虽然对数据库的更改可能使得 systablessyscolumnssysindicessysfragmentssysdistribsysfragdist 系统目录表中的信息过时,但在大多数 SQL 语句之后,数据库服务器不自动地更新那些表。

在下列情况下,发出恰当的 UPDATE STATISTICS 语句来确保系统目录表中的列分发信息反映数据库的当前状态:

如果您的引用导致特定的表中数据的许多修改,则以 UPDATE STATISTICS 常规地为那个表更新系统目录来提升查询效率。术语许多修改是相对于分发的分解。如果数据修改对列值的分发几乎没有影响,则您不需要执行 UPDATE STATISTICS。

NLSCASE INSENSITIVE 数据库中的分发统计信息

在以 NLSCASE INSENSITIVE 属性创建的数据库中,在列和 NCHAR 或 NVARCHAR 数据类型的表达式上的数据库服务器操作,在大写字母与小写字母之间没有区别。在包括相同的字母序列但大小写不同的字符串的数据集中,与包含相同的记录的区分大小写的数据库相比,生成 NCHAR 和 NVARCHAR 列的数据分发需要较少的 bin。数据库服务器仅将所有大小写不同的值标识为单个的不同值,并当它生成该列、索引或分片级统计信息时使用此结果。

要获取更多关于 NLSCASE INSENSITIVE 数据库的信息,请参阅 在 NLSCASE INSENSITIVE 数据库中重复的行指定 NLSCASE 区分大小写在区分大小写的数据库中的 NCHAR 和 NVARCHAR 表达式