/ / azure sql strategia indeksowania pól datetime - sql, indeksowanie, baza danych azure-sql

lazurowa strategia indeksowania sql na polach datetime - sql, indexing, azure-sql-database

mam dwa datetimeoffset pola w tabeli (lazur sql), Migrated i Updated

Zwykle przeprowadzam to wyszukiwanie select * from table where Migrated < Updated

Jaka byłaby właściwa strategia indeksowania tych pól?

  1. dwa indeksy, po jednym dla każdego pola
  2. jeden indeks włączony Migrated, Updated
  3. jeden indeks włączony Updated, Migrated

Tabela jest ogromna i wymaga indeksowania ...

Odpowiedzi:

2 dla odpowiedzi № 1

W większości wersji SQL Server można zastosować następujące podejście. Nie próbowałem tego na SQL Azure.

Utwórz kolumnę obliczeniową, a następnie indeks tego:

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

create index t_MigratedToUpdatedTime on t(MigratedToUpdatedTime);

Następnie w swoim where klauzula, możesz zrobić:

where MigratedToUpdatedTime > 0;