0
有谁能告诉我为什么第一个查询执行全表扫描,而第二个使用索引?带有空格的SQL Server NVARCHAR索引
该表具有上(合约类型,MaterialType)非唯一的,非聚集索引。该表是非规范化的,这就是为什么我使用nvarchars而不是外键,并且我想保持这种方式。
有谁能告诉我为什么第一个查询执行全表扫描,而第二个使用索引?带有空格的SQL Server NVARCHAR索引
该表具有上(合约类型,MaterialType)非唯一的,非聚集索引。该表是非规范化的,这就是为什么我使用nvarchars而不是外键,并且我想保持这种方式。
查看这里的答案,因为这个问题基本上是它的重复(我当时没有意识到)。
Does it make sense to use an index that will have a low cardinality?
可能是因为它的估计,第一个将匹配了很多行,所以它必须做更多的查找比在第二种情况下。 –
我同意@MartinSmith。看看表格中的数据。有多少行匹配'仅限价格'和'价格'? –
这是真的,但为什么它会做全表扫描?为什么不简单地使用索引 - 会不会更快? –