পরিসংখ্যান। মাল্টিকালম হিস্টোগ্রামগুলি কি সম্ভব?


13

আমি এমন পরিস্থিতির কথা ভাবছি যেখানে আমার উচ্চ ঘনত্ব সহ দুটি কলাম রয়েছে তবে এই কলামগুলি স্বতন্ত্র নয়।

সংজ্ঞা

এখানে পরীক্ষার উদ্দেশ্যে তৈরি করা সারণির সংজ্ঞাটি এখানে দেওয়া হয়েছে।

CREATE TABLE [dbo].[StatsTest](
    [col1] [int] NOT NULL,  --can take values 1 and 2 only
    [col2] [int] NOT NULL,  --can take integer values from 1 to 4 only
    [col3] [int] NOT NULL,  --integer. it has not relevance just to ensure that each row is different
    [col4]  AS ((10)*[col1]+[col2])  --a computed column ensuring that if two rows have different values in col1 or col2 have different values in col4 
) ON [PRIMARY]

উপাত্ত

পরীক্ষার জন্য ডেটা নিম্নলিখিত is

col1    col2    col3    col4
1       1       1       11
1       2       2       12
1       2       3       12
1       3       4       13
1       3       5       13
1       3       6       13
1       4       7       14
1       4       8       14
1       4       9       14
1       4       10      14
2       1       11      21
2       1       12      21
2       1       13      21
2       1       14      21
2       2       15      22
2       2       16      22
2       2       17      22
2       3       18      23
2       3       19      23
2       4       20      24

পদক্ষেপ 1: কল 1 দ্বারা ফিল্টারিং

SELECT * FROM StatsTest WHERE col1=1

যেমনটি প্রত্যাশিত হিসাবে ক্যোয়ারী অপ্টিমাইজার সারিগুলির সঠিক সংখ্যা অনুমান করে। সারিগুলির আসল সংখ্যা = 10 এবং সারিগুলির আনুমানিক সংখ্যা = 10

পদক্ষেপ 2: কল 2 দ্বারা ফিল্টারিং

SELECT * FROM StatsTest WHERE col2=1

আবার আমাদের একটি নিখুঁত অনুমান আছে।

সারিগুলির আসল সংখ্যা = 5 এবং সারিগুলির আনুমানিক সংখ্যা = 5

পদক্ষেপ 3: কল 1 এবং কল 2 দ্বারা ফিল্টারিং

SELECT * FROM StatsTest WHERE col1=1 AND col2=1

এখানে অনুমানটি সারিগুলির প্রকৃত সংখ্যার কাছাকাছি হওয়া থেকে দূরে। সারিগুলির আসল সংখ্যা = 1 এবং সারিগুলির আনুমানিক সংখ্যা = 3,53553

সমস্যাটি হ'ল ক্যোয়ারী এনালাইজার ইম্পিলিটি ধরে নেয় যে কল 1 এবং কোল 2 স্বতন্ত্র তবে তারা তা নয় are

পদক্ষেপ 4: কল 4 দ্বারা ফিল্টারিং

SELECT * FROM StatsTest WHERE col4 = 11

আমি 3 য় ধাপ এ QUERY হিসাবে একই ফলাফল পেতে col4 = 11 দ্বারা ফিল্টার করতে পারে, কারণ col4 একটি কম্পিউটেড কলাম এবং পথ অনুযায়ী এটা সংজ্ঞায়িত করা হয়েছে col1 = 1 এবং col2 = 1 সমতূল্য col4 = 11 এখানে, কিন্তু হিসাবে প্রত্যাশা নিখুঁত।

সারিগুলির আসল সংখ্যা = 1 এবং সারিগুলির আনুমানিক সংখ্যা = 1

উপসংহার / প্রশ্ন

Two দুই বা ততোধিক স্বাধীন কলাম দ্বারা ফিল্টারিংয়ের সাথে কাজ করার সময় কি এই কৃত্রিম এবং অদম্য সমাধানটি সঠিক অনুমানের একমাত্র উপলভ্য বিকল্প? Actual গণিত কলাম এবং গণিত কলাম দ্বারা ফিল্টার প্রকৃত নির্ভুলতা প্রাপ্ত করার জন্য কি গুরুতরভাবে প্রয়োজনীয়?

স্কেলফিল্ডে উদাহরণ


কল 1/2 এ কিছু সূচী কেন তৈরি করবেন না?
লোলিডিবিএ

আসলে আমি করেছি কিন্তু আমি এখানে অন্তর্ভুক্ত করিনি কারণ এটি কাজ করে না। হিস্টোগ্রামের জন্য কেবল প্রথম কলামটি বিবেচনা করা হয় এবং ঘনত্ব কেবলমাত্র বিভিন্ন সংখ্যার মান বিবেচনা করে না তাদের বিতরণ
জেজিএ

উত্তর:


15

মাল্টিকালম হিস্টোগ্রামগুলি কি সম্ভব?

সত্য নয় বহু-মাত্রিক হিস্টোগ্রাম, না।

দুই বা ততোধিক স্বাধীন কলাম দ্বারা ফিল্টারিংয়ের সাথে কাজ করার সময় এই কৃত্রিম এবং অদম্য সমাধানটি সঠিক অনুমানের একমাত্র উপলভ্য বিকল্প?

এসকিউএল সার্ভার "মাল্টি-কলাম" পরিসংখ্যানকে সমর্থন করে তবে তারা প্রথম নামক কলামে একটি হিস্টگرام ছাড়াও গড় ঘনত্ব (পারস্পরিক সম্পর্ক) তথ্য ক্যাপচার করে। এগুলি কেবল সমতা তুলনার জন্য কার্যকর।

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

এসকিউএল সার্ভার সংস্করণের উপর নির্ভর করে আপনি ফিল্টারড ইনডেক্স এবং ফিল্টার করা পরিসংখ্যানও ব্যবহার করতে সক্ষম হতে পারেন :

-- Filtered statistics example
CREATE STATISTICS stats_StatsTest_col2_col1_eq_1
ON dbo.StatsTest (col2)
WHERE col1 = 1;

CREATE STATISTICS stats_StatsTest_col2_col1_eq_2
ON dbo.StatsTest (col2)
WHERE col1 = 2;

অথবা আপনি একটি সূচিযুক্ত ভিউ তৈরি করতে পারেন (যা এর নিজস্ব সূচি এবং পরিসংখ্যানগুলিকে সমর্থন করতে পারে)। ইনডেক্সড ভিউগুলি হ'ল DATE_CORRELATION_OPTIMIZATIONডাটাবেস সেটিংয়ের পিছনের প্রক্রিয়া , আন্তঃ-সারণি সম্পর্কিত সম্পর্কিত জন্য সামান্য ব্যবহৃত বৈশিষ্ট্য, তবে যা প্রশ্নের উদ্বেগের ক্ষেত্রে প্রযোজ্য।

প্রকৃত নির্ভুলতা পাওয়ার জন্য গণিত কলামের দ্বারা গণিত কলাম এবং ফিল্টার কি কঠোরভাবে প্রয়োজনীয়?

এটি একমাত্র পদ্ধতি নয়। ইতিমধ্যে উল্লিখিত জিনিসগুলি ছাড়াও, আপনি গণিত কলামের সঠিক পাঠ্য সংজ্ঞাটিও নির্দিষ্ট করতে পারেন এবং অপ্টিমাইজারটি সাধারণত এটি গণিত কলামের পরিসংখ্যানের সাথে মিলে যায়।

এছাড়াও ট্রেস পতাকা রয়েছে যা বহু-কলাম সম্পর্কিত সম্পর্কিত সম্পর্কিত অনুমানগুলি পরিবর্তন করে। এছাড়াও, এসকিউএল সার্ভারে ডিফল্ট পারস্পরিক সম্পর্ক ধারণা 2014 (নতুন কার্ডিনালিটি অনুমানকারী সক্ষম করা সহ) স্বাধীনতা থেকে এক্সপেনসিয়াল ব্যাক অফে (আরও বিশদ এখানে এবং এখানে ) পরিবর্তন করা হয়েছে । শেষ পর্যন্ত, যদিও এটি একটি ভিন্ন ধারণা। এটি অনেক ক্ষেত্রে ভাল এবং অন্যদের মধ্যে আরও খারাপ হবে।

কার্ডিনালিটির প্রাক্কলনটিতে নির্ভুল নির্ভুলতার একটি ভাল প্রয়োগের পরিকল্পনা পাওয়ার জন্য সর্বদা প্রয়োজন হয় না। একটি পরিকল্পনা উত্পন্ন করার জন্য সর্বদা একটি বাণিজ্য থাকে যা বিভিন্ন প্যারামিটার মানগুলির জন্য পুনরায় ব্যবহার করা যেতে পারে এবং একটি পরিকল্পনা যা নির্দিষ্ট মৃত্যুর জন্য অনুকূল, তবে পুনরায় ব্যবহৃত হয় না।

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