azure sql 日期时间字段的索引策略

azure sql indexing strategy on datetime fields

我在 table(sql 天蓝色)、MigratedUpdated

中有两个 datetimeoffset 字段

我经常搜索select * from table where Migrated < Updated

索引这些字段的正确策略是什么?

  1. 两个索引,每个字段一个
  2. MigratedUpdated
  3. 上的一个索引
  4. UpdatedMigrated
  5. 上的一个索引

Table 很大,需要索引...

在大多数版本的SQL服务器中,您可以采用以下方法。我没有在 SQL Azure 中尝试过。

创建计算列,然后在其上创建索引:

alter table t add MigratedToUpdatedTime as (datediff(seconds, Migrated, Updated))

create index t_MigratedToUpdatedTime on t(MigratedToUpdatedTime);

然后在你的 where 子句中,你可以这样做:

where MigratedToUpdatedTime > 0;