SQL Server 2012'de aşağıdaki T-SQL sorgusu ile bazı garip davranışlar görüyorum:
SELECT Id
FROM dbo.Person
WHERE CONTAINS(Name, '"John" AND "Smith"')
ORDER BY Name
Bu sorguyu tek başına yürütmek bana iki saniyeden kısa sürede yaklaşık 1.300 sonuç veriyor (tam metin dizini var Name
)
Ancak, ben bu sorguyu değiştirdiğinizde:
SELECT Id
FROM dbo.Person
WHERE CONTAINS(Name, '"John" AND "Smith"')
ORDER BY Name
OFFSET 0 rows
FETCH NEXT 10 ROWS ONLY
Bana 10 sonuç vermek 20 saniyeden fazla sürüyor.
Aşağıdaki sorgu daha da kötüdür:
SELECT Id
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY Name) AS RowNum, Id
FROM dbo.Person
WHERE CONTAINS(Name, '"John" AND "Smith"') ) AS RowConstrainedResult
WHERE RowNum >= 0 AND RowNum < 11
ORDER BY RowNum
Tamamlanması 1,5 dakikadan fazla sürüyor!
Herhangi bir fikir?
SELECT TOP 10 * .... ORDER BY Name
?