এসকিউএল সার্ভার কেন যৌগিক কলামের পরিসংখ্যান হিস্টোগ্রামগুলি করে না?


10

এসকিউএল সার্ভারের কাছে "মাল্টি-কলামের পরিসংখ্যান" নামে একটি জিনিস রয়েছে তবে এটির অর্থ কী তা মনে হয় তা নয়।

আসুন নীচের নমুনা টেবিলটি একবার দেখুন:

CREATE TABLE BadStatistics 
(
    IsArchived BIT NOT NULL,
    Id INT NOT NULL IDENTITY PRIMARY KEY,
    Mystery VARCHAR(200) NOT NULL
);

CREATE NONCLUSTERED INDEX BadIndex 
    ON BadStatistics (IsArchived, Mystery);

এটির সাথে, আমাদের দুটি সূচকগুলিতে দুটি পরিসংখ্যান তৈরি করা হচ্ছে:

BadIndex এর পরিসংখ্যান:

+--------------+----------------+-------------------------+
| All density  | Average Length | Columns                 |
+--------------+----------------+-------------------------+
| 0.5          | 1              | IsArchived              |
+--------------+----------------+-------------------------+
| 4.149378E-06 | 37             | IsArchived, Mystery     |
+--------------+----------------+-------------------------+
| 4.149378E-06 | 41             | IsArchived, Mystery, Id |
+--------------+----------------+-------------------------+

+--------------+------------+---------+---------------------+----------------+
| RANGE_HI_KEY | RANGE_ROWS | EQ_ROWS | DISTINCT_RANGE_ROWS | AVG_RANGE_ROWS |
+--------------+------------+---------+---------------------+----------------+
| 0            | 0          | 24398   | 0                   | 1              |
+--------------+------------+---------+---------------------+----------------+
| 1            | 0          | 216602  | 0                   | 1              |
+--------------+------------+---------+---------------------+----------------+

ক্লাস্টারড ইনডেক্সের পরিসংখ্যান:

+--------------+----------------+---------+
| All density  | Average Length | Columns |
+--------------+----------------+---------+
| 4.149378E-06 | 4              | Id      |
+--------------+----------------+---------+

+--------------+------------+---------+---------------------+----------------+
| RANGE_HI_KEY | RANGE_ROWS | EQ_ROWS | DISTINCT_RANGE_ROWS | AVG_RANGE_ROWS |
+--------------+------------+---------+---------------------+----------------+
| 1            | 0          | 1       | 0                   | 1              |
+--------------+------------+---------+---------------------+----------------+
| 240999       | 240997     | 1       | 240997              | 1              |
+--------------+------------+---------+---------------------+----------------+
| 241000       | 0          | 1       | 0                   | 1              |
+--------------+------------+---------+---------------------+----------------+

(আমি এলোমেলোভাবে নমুনা ডেটা সহ টেবিলটি তৈরি করেছি যেখানে প্রায় সারিগুলির দশমাংশ সংরক্ষণাগারভুক্ত থাকে after পরে আমি একটি সম্পূর্ণ স্ক্যান পরিসংখ্যান আপডেট চালিয়েছি))

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

দয়া করে নোট করুন যে এই প্রশ্নটি বহুমাত্রিক হিস্টোগ্রামগুলিকে বোঝায় না, যা সম্পূর্ণ ভিন্ন জন্তু। এটি একক মাত্রিক হিস্টোগ্রামগুলির সাথে একক মাত্রার সাথে সম্পর্কিত, একাধিক কলামগুলিকে ধারণ করে।

উত্তর:


8

পটভূমি

বর্তমান এসকিউএল সার্ভার মডেলটি কেবল একক-কলামের হিস্টোগ্রাম এবং বহু-কলামের ঘনত্বের তথ্য ব্যবহার করে। একক কলাম হিস্টোগ্রামগুলি যথাযথ পূর্বাভাসের জন্য নির্বাচন বাছাইয়ের অনুমান করতে ব্যবহৃত হয় যেমন a = 1বা b > 50। একাধিক পূর্বাভাসের সাথে একটি ক্যোয়ারী একটি প্রাক্কলিত নির্বাচন বাছাই করার জন্য কেবল পৃথক নির্বাচন (অনুমান সহ) একত্রিত করে।

উদাহরণস্বরূপ, আমার নিবন্ধটি কার্ডিনালিটির অনুমান দেখুন: ঘনত্বের পরিসংখ্যানের সংমিশ্রণ

বহু-কলামের ঘনত্ব একাধিক সাম্যের পূর্বাভাসের জন্য দুর্বল পারস্পরিক সম্পর্ক তথ্য সরবরাহ করে এবং সংহতকরণের জন্য কার্ডিনালিকে গ্রুপিং করে মডেলকে আরও অবহিত করে।

সূচকের সাথে সম্পর্কিত পরিসংখ্যানগুলি সেই মডেলটির একটি সুবিধাজনক অ্যাড-অন: ইঞ্জিনটি যখন সূচক তৈরি করতে পারে তখন পাশাপাশি (সাধারণত সম্পূর্ণ স্ক্যান) পরিসংখ্যান সংগ্রহ করতে পারে। এসকিউএল সার্ভার স্বয়ংক্রিয়ভাবে অন্যান্য কীগুলির জন্য একটি শীর্ষস্থানীয়-কলামের হিস্টোগ্রাম এবং ঘনত্বের তথ্য তৈরি করে।

একটি সূচক অ নেতৃস্থানীয় কলামের জন্য Histograms ক্যোয়ারী প্রসেসর দ্বারা স্বয়ংক্রিয়ভাবে চাহিদা নির্মাণ হতে পারে, অথবা আগাম ব্যবহার sp_createstatsসঙ্গে @indexonlyবিকল্প (অন্যদের মধ্যে)।

মাল্টি-কলাম হিস্টোগ্রাম

একক-কলামের পরিসংখ্যানকে সংযুক্ত করার সময় করা অনুমানগুলি (উপরে হিসাবে) যথেষ্ট পরিমাণে তথ্যের বাস্তবতাকে মডেল করতে পারে বা নাও করতে পারে। অনেক ক্ষেত্রে, উপলভ্য বিকল্পগুলি (ঘৃণ্য ব্যাকঅফ, স্বতন্ত্রতা, ন্যূনতম নির্বাচন) একটি 'যথেষ্ট যথেষ্ট' অনুমান উত্পাদন করে।

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

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

আমাদের সূচি কীগুলির প্রতিটি স্তরের (সেরা ফলাফলের জন্য) একটি হিস্টোগ্রামও প্রয়োজন; সুতরাং এর সূচকটির (a, b, c)অর্থ হিস্টোগ্রামের অর্থ হ'ল (a, b)এবং একা (a, b, c)বর্তমান একক-কলামের হিস্টোগাম ছাড়াও (a)

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

এই সমস্ত আকার, জটিলতা এবং রক্ষণাবেক্ষণ ওভারহেড যোগ করে।

বহু কলামের পরিসংখ্যানকে সীমাবদ্ধ করা যেতে পারে (একটি সীমিত পরিমাণে) সাবধানতার সাথে নির্মিত গণিত কলামে একাধিক কলাম উল্লেখ করে তৈরি করা একটি পরিসংখ্যান using এই পরিসংখ্যানটির সুবিধা নিতে ক্যোয়ারিতে গণিত কলামে (বা অন্তর্নিহিত সূত্রের জন্য একটি সঠিক পাঠ্য মিল) একটি শিকারী অন্তর্ভুক্ত করা দরকার। সম্ভবত খুব সীমিত পরিস্থিতি রয়েছে যেখানে এই পদ্ধতির ব্যবহারিক। তা সত্ত্বেও, এটি স্বয়ংক্রিয়ভাবে বহু-কলামের হিস্টোগ্রামগুলির মতো একই বাস্তবায়ন সংক্রান্ত কিছু সমস্যা রয়েছে।

শেষ পর্যন্ত, কেবলমাত্র লোকেরা যারা এসকিউএল সার্ভার মাল্টি-কলামের পরিসংখ্যানকে সমর্থন করে না তা নিশ্চিত করে বলতে পারে যে তারা নিজেরাই ডিজাইনার be আপনি যদি মনে করেন যে আপনি বিস্তৃত প্রয়োগযোগ্যতার সাথে এই অঞ্চলে পণ্য উন্নতির জন্য একটি শক্তিশালী মামলা করতে পারেন তবে আপনি এটি কানেক্টে বা আপনার সাধারণ সমর্থন চ্যানেলের মাধ্যমে প্রস্তাব করতে পারেন ।

পাদটীকা

এই ক্ষেত্রে এটি পুরো হিস্টোগ্রামকে অনেক কম দরকারী করে তোলে, কারণ প্রথম কলামে কেবলমাত্র দুটি মান থাকে

হিস্টগ্রাম এখনও নেতৃস্থানীয় কলামে মানগুলির বিতরণ সম্পর্কে দরকারী তথ্য সরবরাহ করে: যখন পরিসংখ্যানগুলি তৈরি করা হয়েছিল, সেখানে 24,398 সারি যেখানে মিথ্যাIsArchived ছিল এবং 216,602 সারি যেখানে সত্য ছিল ।

IsArchivedতদতিরিক্ত, পরিসংখ্যান অবজেক্টটি আমাদের জানায় যে (1 / 4.149378E-06) এর জন্য (1 / 4.149378E-06) 24 = 241000 স্বতন্ত্র মানগুলির জন্য (IsArchived, Mystery)গড় বারি আকারের 37 বাইট রয়েছে এবং এর (IsArchived, Mystery, Id)সাথে একই ফ্রিকোয়েন্সি রয়েছে সারি প্রতি 4 অতিরিক্ত বাইট

এগুলি সমস্ত সাধারণ-উদ্দেশ্য সম্পর্কিত তথ্য, যা অন্যান্য কলামগুলির পরিসংখ্যানগত তথ্যের সাথে একত্রে একাধিক পূর্বাভাস (যেমন উল্লিখিত) এর অনুসন্ধানগুলিতে সিলেকটিভিটি প্রাক্কলন তৈরি করতে পারে।

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