如果我使用分区表中复合聚集主键的第 2 部分进行查询,会很慢吗?

Will be slow if I query with the 2nd part of a composite clustered primary key in a partitioned table?

提问人:DimitrisK 提问时间:11/14/2023 更新时间:11/14/2023 访问量:49

问:

我有一个大分区表(接近 10 亿行),它在分区列上有一个聚集主键和一个标识 ID 键(dateSubmitted Date,id long),并且只想使用 id 进行查询。这是否会产生明显的负面影响,因为我没有使用整个密钥,更糟糕的是,我完全跳过了第一部分(dateSubmitted)?

sql-server t-sql 分区 composite-primary-key clustered-index

评论

3赞 Dan Guzman 11/14/2023
检查执行计划。如果没有其他索引作为最左侧的键列,则需要进行完全扫描。如果您要颠倒聚集索引键顺序,我希望进行聚集索引搜索,但由于子句中未指定分区列,因此将触及所有分区。idWHERE
1赞 Charlieface 11/14/2023
是的,除非您有其他索引,否则它将扫描所有分区。至少尝试将其限制为一个分区。
1赞 HABO 11/15/2023
从好的方面来说,如果查询优化器认为它比表扫描更好,它可能会执行索引扫描,而不是查找。实际的执行计划会告诉你实际发生了什么,尽管它可能会因各种影响而改变。
1赞 Martin Smith 11/15/2023
该表包含多少个不同的日期?可能比扫描十亿行更快地进行搜索。nDate,Id
0赞 DimitrisK 11/15/2023
@MartinSmith它有大约 2 年的数据,因此没有那么多日期。我将在我的查询中使用它们。我只是要求确保没有其他方法,因为在整个项目中同时使用两者将需要太多的更改。

答: 暂无答案