ne ho due datetimeoffset
campi nella tabella (sql azzurro), Migrated
e Updated
Di solito faccio questa ricerca select * from table where Migrated < Updated
Quale sarebbe la strategia giusta per indicizzare questi campi?
- due indici, uno per ogni campo
- un indice su
Migrated
,Updated
- un indice su
Updated
,Migrated
La tabella è enorme e richiede l'indicizzazione ...
risposte:
2 per risposta № 1Nella maggior parte delle versioni di SQL Server, è possibile adottare il seguente approccio. Non ho provato questo in SQL Azure.
Crea una colonna calcolata e quindi un indice su quello:
alter table t add MigratedToUpdatedTime as (datediff(seconds, Migrated, Updated))
create index t_MigratedToUpdatedTime on t(MigratedToUpdatedTime);
Quindi nel tuo where
clausola, puoi fare:
where MigratedToUpdatedTime > 0;