Filtered indexes

En feature som ikke er så mye brukt som den kanskje burde. Den blev introdusert av Microsoft i SQL Server 2008.

Du kan tenke på en filtered index som en helt vanlig index med en WHERE betingelse.

Her er et eksempel på en indeks som kan gi raskere svar i en bokhandel sin web shop når noen leter etter en påske krim:

CREATE NONCLUSTERED INDEX IX_Crime_books
ON Books (Title)
WHERE Book_type = 'Crime'

Fordelen med filtered indexes er at de vil kunne være mye mindre enn en indeks på alle data og kun indeksere en del av alle data i tabellen som man har vurdert som ekstra kritisk for applikasjonen.

NB. Du kan også bruke filtered indexes med dato betingelser, da kan det for eksempel være raskere å hente frem siste måned sine data da de har en filtered dato index. Slike dato filtrerte indekser kan man bygge automatisk slik at de alltid er oppdaterte. NULL er også en mulig betingelse som kan være interessant å bruke, sparse columns er også en mulighet for slike tilfeller.

Noen ganger må man optimalisere T-SQL koden for å kunne ta i bruke de nye filtrerte indeksene.