什么是基数以及它如何影响性能(SQL Server)?
我们有一个庞大的表,我需要在一行上进行更新。我不知道行的主键,但我有一个varchar值,该值在该表中是唯一的。我还拥有该表中其他一些列的值 运行更新需要三分钟以上的时间,我假设它要做一个完整的表扫描 查看表上的索引,列上的索引基数为零,页面计数为零。还有一些其他索引的基数等于表中的行数(几百万),页面计数为几十万 这些数字究竟意味着什么什么是基数以及它如何影响性能(SQL Server)?,sql,sql-server,indexing,cardinality,Sql,Sql Server,Indexing,Cardinality,我们有一个庞大的表,我需要在一行上进行更新。我不知道行的主键,但我有一个varchar值,该值在该表中是唯一的。我还拥有该表中其他一些列的值 运行更新需要三分钟以上的时间,我假设它要做一个完整的表扫描 查看表上的索引,列上的索引基数为零,页面计数为零。还有一些其他索引的基数等于表中的行数(几百万),页面计数为几十万 这些数字究竟意味着什么 接下来,添加一个命中基数或页数较高的索引的限制是否会加快执行速度?或者我可以在标记上查看其他内容,以找到更适合快速查找要更改的行的标记。基数是表中该字段的唯一
接下来,添加一个命中基数或页数较高的索引的限制是否会加快执行速度?或者我可以在标记上查看其他内容,以找到更适合快速查找要更改的行的标记。基数是表中该字段的唯一值数 我怀疑SQL Server实际上没有创建索引,因为没有索引的记录。该字段可能为all
NULL
s,或者该字段上有一个过滤器,可消除所有记录,如其中1=0
一个好的起点是运行更新并捕获实际的执行计划
编辑:
索引类型3是一个XML索引
XML
索引的结构有很大不同。我自己不使用它们,但通过快速阅读,它听起来像是创建了一系列附加索引,用户无法直接访问这些索引,但查询引擎使用这些索引。该字段绝对不是空的。它的索引类型为3。。。我想知道这是否是一个未分类的索引,并且只用于确保值是唯一的。@牧师-你能看看索引定义吗?是的。。。但我是通过松鼠看的,松鼠只给了我一个数字。它说它的索引类型是3。@牧师-我正在查这个。我怀疑它可能是一个XML
索引或一些奇怪的东西…字段是什么数据?这不可能是正确的。。。这只是一根线。。。像uuid(不完全是,但有效)这能回答你的问题吗?