Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是基数以及它如何影响性能(SQL Server)?_Sql_Sql Server_Indexing_Cardinality - Fatal编程技术网

什么是基数以及它如何影响性能(SQL Server)?

什么是基数以及它如何影响性能(SQL Server)?,sql,sql-server,indexing,cardinality,Sql,Sql Server,Indexing,Cardinality,我们有一个庞大的表,我需要在一行上进行更新。我不知道行的主键,但我有一个varchar值,该值在该表中是唯一的。我还拥有该表中其他一些列的值 运行更新需要三分钟以上的时间,我假设它要做一个完整的表扫描 查看表上的索引,列上的索引基数为零,页面计数为零。还有一些其他索引的基数等于表中的行数(几百万),页面计数为几十万 这些数字究竟意味着什么 接下来,添加一个命中基数或页数较高的索引的限制是否会加快执行速度?或者我可以在标记上查看其他内容,以找到更适合快速查找要更改的行的标记。基数是表中该字段的唯一

我们有一个庞大的表,我需要在一行上进行更新。我不知道行的主键,但我有一个varchar值,该值在该表中是唯一的。我还拥有该表中其他一些列的值

运行更新需要三分钟以上的时间,我假设它要做一个完整的表扫描

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

这些数字究竟意味着什么


接下来,添加一个命中基数或页数较高的索引的限制是否会加快执行速度?或者我可以在标记上查看其他内容,以找到更适合快速查找要更改的行的标记。

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

我怀疑SQL Server实际上没有创建索引,因为没有索引的记录。该字段可能为all
NULL
s,或者该字段上有一个过滤器,可消除所有记录,如
其中1=0

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

编辑:

索引类型3是一个
XML索引


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

该字段绝对不是空的。它的索引类型为3。。。我想知道这是否是一个未分类的索引,并且只用于确保值是唯一的。@牧师-你能看看索引定义吗?是的。。。但我是通过松鼠看的,松鼠只给了我一个数字。它说它的索引类型是3。@牧师-我正在查这个。我怀疑它可能是一个
XML
索引或一些奇怪的东西…字段是什么数据?这不可能是正确的。。。这只是一根线。。。像uuid(不完全是,但有效)这能回答你的问题吗?