আমার একটি ক্যোয়ারী রয়েছে যা প্রিডিকেটে একটি ফাংশন ব্যবহার করে, এরকম কিছু:
commentType = 'EL'
AND commentDateTime >= DATEADD(month,datediff(month,0,getdate()) - 13,0)
আমার কাছে মন্তব্য টাইপে একটি ফিল্টারড সূচক রয়েছে যার 40K সারি রয়েছে এবং আমি যখন ক্যোয়ারী চালাচ্ছি তখন সূচী অনুসন্ধানের জন্য সারিগুলির আনুমানিক সংখ্যাটি খুব নির্ভুল (11K এর কাছাকাছি), তবে পরবর্তী পদক্ষেপের জন্য (সাজানোর অপারেটর) এটি পরিসংখ্যানকে সম্পূর্ণ উপেক্ষা করে এবং ফিল্টারড সূচীতে সারিগুলির মোট সংখ্যা অনুমান করে।
ইহা কি জন্য ঘটিতেছে? আমি সরগাব্যতা সম্পর্কে প্রাথমিক বিষয়গুলি জানি , এবং আমি কেবল তাত্পর্যপূর্ণতার জন্য পরীক্ষা করেছিলাম যে তারিখটি একটি আসল তারিখ (2014-01-01) এবং ভয়েলা দ্বারা প্রতিস্থাপন করা হয়েছে ... ক্রমটি সারিগুলির সংখ্যা সঠিকভাবে অনুমান করা শুরু করেছিল ...
কেন এটি হচ্ছে এবং আমি কীভাবে এটি ঠিক করতে পারি? আমি একটি নির্দিষ্ট তারিখ পাস করতে পারি না ...
DATEADD(month, -13, DATEADD(day, 1-DATEPART(day, SYSDATETIME()))
পারেন এবং কিছু পার্থক্য আছে কিনা তা দেখতে পারেন?
(commentType, commentDate)
থাকে তবে এটি কি এখানে আরও ভাল আচরণ করে? এটি ঠিক যে ফিল্টারড সূচীগুলি কখনও কখনও পরিকল্পনার বিভিন্ন পয়েন্টে অনুমানকে ভুল করে তুলতে পারে। ফিল্টারড ইনডেক্সে মোট সংখ্যাটি রিপোর্ট করে অনুমানটি বেরিয়ে গেছে বলে মনে হচ্ছে, তবে বাস্তবে এটি পরিকল্পনাটি ভুল দেখানো হচ্ছে।
DATEADD(month,datediff(month,0,getdate()) - 13,0)
আমার কোন মানে নেই। আপনি এই কি করতে চেষ্টা করছেন? এটি কি উন্নত / সরলীকরণ করা যেতে পারে?