在Entity Framework Core 6代码中按DESC排序的聚类索引优先



我有一个名为Log的Microsoft SQL Server表,我在其中存储了大量的日志条目。典型的查询是获取最近几天、几周或几个月的日志行。

所以我学到的是,日志条目写入时间戳上的聚集索引将是查询表的一个聪明的解决方案。简单地说,使用时间戳上的聚集索引,表本身在该列上是有序的,并且查询速度很快。

但是我不明白如何用实体框架核心代码首先以降序创建聚集索引。

这是我当前的代码,似乎正确地创建了索引,但它是与ASC排序。

modelBuilder.Entity<LogEntryEntity>()
.HasKey(c => c.LogEntryId)
.IsClustered(false);
modelBuilder.Entity<LogEntryEntity>()
.HasIndex(c => c.LogTimestamp)
.HasDatabaseName("LogEntryClusteredIndex")
.IsClustered(true);

现在,我看到一个一些帖子,这是一个已知的问题,而不是琐碎的解决,据我所知。但我想知道这是否是过时的信息和/或是否有人有任何提示如何将订单更改为DESC。以及上述代码是否正确?

我使用的是Entity Framework Core 6.0.0-preview.7

但是我无法理解如何首先使用实体框架核心代码创建集群索引DESC。

您可以使用自定义迁移操作

但是为什么要改变索引顺序呢?插入或查询不应该更快。

最新更新