কোয়েরি পরিকল্পনায় সতর্কতা "কার্ডিনালিটি প্রাক্কলন"


17
create table T(ID int identity primary key)
insert into T default values
insert into T default values

go

select cast(ID as varchar(10)) as ID
from T
where ID = 1

উপরের ক্যোয়ারিতে ক্যোয়ারী প্ল্যানে একটি সতর্কতা রয়েছে।

<Warnings>
  <PlanAffectingConvert ConvertIssue="Cardinality Estimate" Expression="CONVERT(varchar(10),[xx].[dbo].[T].[ID],0)" />
</Warnings>

কেন এটি সতর্কতা আছে?

ক্ষেত্র তালিকার কোনও কাস্ট কীভাবে কার্ডিনালিটির অনুমানকে প্রভাবিত করতে পারে?

উত্তর:


12

এসকিউএল সার্ভার ২০১২-এর জন্য এই সতর্কতাটি নতুন ছিল।

থেকে নতুন "এক্সপ্রেশন টাইপ রূপান্তর ....." ব্যবহারিক ব্যবহারের SQL2012 মধ্যে সতর্কীকরণ, গোলযোগপূর্ণ করতে

আমি বুঝছি তুমি কি বলতে চাও. যদিও আমি সম্মত হই যে বেশিরভাগ ক্ষেত্রে এটি শোরগোল, তবুও এটি ঠিক করা আমাদের পক্ষে কম অগ্রাধিকার। আমরা আরও প্রতিক্রিয়া পেলে আমরা এটি দেখব। আপাতত আমি এটি নকশা দ্বারা বন্ধ করেছি।

কানেক্টটি হত্যা করা হয়েছিল এবং দেখে মনে হচ্ছে না যে মূল সমস্যাটি ইউজারভয়েসে স্থানান্তরিত হয়েছিল। একই সমস্যাটি সম্পর্কে এখানে একটি ভিন্ন ব্যবহারকারীভয়েস ইস্যু রয়েছে, টাইপ রূপান্তরটি কার্ডিনালাইটিসিমিটকে প্রভাবিত করতে পারে - নির্বাচিত কলামগুলিতে রূপান্তর / কাস্ট করুন

আমি আরও বিরক্তিকর উত্তর প্রদান করব যতক্ষণ না কেউ আরও ভাল উত্তর সহ আসে।

কেন এটি সতর্কতা আছে?

আমার পক্ষ থেকে জল্পনা।
এমন একটি কলামে একটি কাস্ট রয়েছে যা যেখানে ক্লোজে ব্যবহৃত হয় যা সেই কলামটির পরিসংখ্যানকে আকর্ষণীয় করে তোলে। ডেটাটাইপের পরিবর্তন পরিসংখ্যানগুলিকে কোনও ভাল করে না তাই ক্ষেত্রের তালিকা থেকে মানটি কোথাও ব্যবহার হতে পারে এমন বিষয়ে সতর্ক করতে দেয়।

ক্ষেত্র তালিকার কোনও কাস্ট কীভাবে কার্ডিনালিটির অনুমানকে প্রভাবিত করতে পারে?

এটি উত্পন্ন টেবিলের ক্ষেত্রের তালিকা না থাকলে এটি পারবেন না।


আমি নিম্নলিখিতটি বাক্যটিতে নিম্নলিখিতটি যুক্ত করব, বা কোয়েরিটি একটি ভিউ সংজ্ঞা এবং প্রশ্নগুলি প্রশ্নোত্তে সতর্কতাটি দেখানো কলামে ফিল্টার করবে
জন আইজব্রেনার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.