Hej
MS SQL 2008 R2
Jeg har 2 næsten ens select statements:
SELECT TOP 20 DocumentId, Date1 AS [Dato]
FROM Document INNER JOIN ItemType ON Document.ItemTypeId =
ItemType.ItemTypeId
WHERE (ItemType.Name = 'dr') order by Date1 DESC
SELECT TOP 20 DocumentId, Date1 AS [Dato]
FROM Document INNER JOIN ItemType ON Document.ItemTypeId =
ItemType.ItemTypeId
WHERE (Document.ItemTypeId = 8) order by Date1 DESC
De skal vælge de sidste 20 oprettede records i Document tabellen hvor type
svare til det parameter jeg sender ind i spén.
Den eneste forskel, på de 2 selects, er i hvilken table der skal vælge type.
Begge disse selects kan udføres på 00:00:00, selvom der er 25 mio+ records i
document tabellen. Hvis jeg skifter type til en der ikke findes 20 records
af tager select1 lidt over et minut og select2 udføres stadig på 00:00:00.
Jeg vil tro det er et index jeg mangler at oprette, men ved ikke hvordan det
skal oprettes. Lige nu findes nedenstående index i databasen.
CREATE NONCLUSTERED INDEX [dta_index_Document_2] ON [dbo].[Document]
([Date1] DESC) INCLUDE ( [DocumentId],[ItemTypeId])
Nogle gode forslag?
--
MK
|