এসকিউএল সার্ভার ২০১২-তে নিম্নলিখিত টি-এসকিউএল কোয়েরির সাথে আমি কিছু অদ্ভুত আচরণ দেখছি:
SELECT Id
FROM dbo.Person
WHERE CONTAINS(Name, '"John" AND "Smith"')
ORDER BY Name
এই ক্যোয়ারীটি একাই কার্যকর করা আমাকে প্রায় দুই সেকেন্ডেরও কম সময়ে প্রায় 1,300 ফলাফল দেয় (এখানে একটি পূর্ণ পাঠ্য সূচক রয়েছে Name
)
যাইহোক, যখন আমি এইটিতে ক্যোয়ারীটি পরিবর্তন করি:
SELECT Id
FROM dbo.Person
WHERE CONTAINS(Name, '"John" AND "Smith"')
ORDER BY Name
OFFSET 0 rows
FETCH NEXT 10 ROWS ONLY
আমাকে 10 টি ফলাফল দিতে 20 সেকেন্ডের বেশি সময় লাগে।
নিম্নলিখিত কোয়েরিটি আরও খারাপ:
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
এটি শেষ হতে 1.5 মিনিটেরও বেশি সময় নেয়!
কোন ধারনা?
SELECT TOP 10 * .... ORDER BY Name
?