j'en ai deux datetimeoffset
champs dans la table (sql azure), Migrated
et Updated
Je fais habituellement cette recherche select * from table where Migrated < Updated
Quelle serait la bonne stratégie pour indexer ces champs?
- deux index, un pour chaque champ
- un index sur
Migrated
,Updated
- un index sur
Updated
,Migrated
Le tableau est énorme et nécessite une indexation ...
Réponses:
2 pour la réponse № 1Dans la plupart des versions de SQL Server, vous pouvez adopter l'approche suivante. Je n'ai pas essayé cela dans SQL Azure.
Créez une colonne calculée puis un index sur cela:
alter table t add MigratedToUpdatedTime as (datediff(seconds, Migrated, Updated))
create index t_MigratedToUpdatedTime on t(MigratedToUpdatedTime);
Puis dans votre where
clause, vous pouvez faire:
where MigratedToUpdatedTime > 0;