আমাকে কেবল নিশ্চিত করতে হবে যে আমি কিছুটা সঠিকভাবে বুঝতে পেরেছি:
আমি সম্প্রতি একটি এসও প্রশ্ন দেখেছি যেখানে কোনও ব্যবহারকারী লিনকের মতো উত্তর পোস্ট করেছেন:
from p in db.table where p.column.AddMinutes(1) > DateTime.Now select p
লিনকের সাথে অপরিচিতদের কাছে আমি এই বিবৃতিটির আউটপুট আশা করব (এটি ন্যায্যতার সাথে পরীক্ষা করা হয়নি):
SELECT *
FROM table t
WHERE DATEADD(min, 1, t.column) >= GETDATE()
আমি এর জবাব পোস্ট করে বলেছিলাম যে ডেটটাইম ম্যানিপুলেশনটি চলকটিতে হওয়া উচিত (এক্ষেত্রে GETDATE()
) তাই বাস্তবে বিবৃতিটি এমন কিছু প্রতিফলিত করে:
SELECT *
FROM table t
WHERE t.column >= DATEADD(min, -1, GETDATE())
আমার জবাবে, বিটগুলি সম্পর্কে আমি এখন অনিশ্চিত, নিম্নলিখিতটি ধরে নিন:
- কলামের কারসাজির কারণে সূচিগুলি ব্যবহার করা হবে না
- উপরের কারণে ক্যোয়ারী পরিকল্পনাগুলি আংশিকভাবে আলাদা হবে (পরীক্ষিত নয়, ধরে নেওয়া)
- উপরের কারণে, 1 ম কোয়েরি আসলে 2 য় এর চেয়ে খারাপ সঞ্চালন করবে।
আমার প্রশ্ন:
আমি কি আমার যুক্তিতে কিছু মিস করেছি? আমি কি সঠিক? সবশেষে, কোনও শরীরের SARGability সম্পর্কে কোনও ভাল নিবন্ধ আছে?