পার্টিশন কীটি কি প্রাথমিক কী এর অংশ হতে হবে?


24

আমি একটি প্রাথমিক কী নয় এমন কলামের ভিত্তিতে একটি টেবিল ভাগ করছি? পার্টিশন কলামটি প্রাথমিক কীটির অংশ হওয়া উচিত কিনা তা নিয়ে আমি আজ কিছু বিবাদী তথ্য পড়েছি। আমার অন্ত্রে না বলে, তবে আমি 100% নিশ্চিত নই। তাই প্রশ্ন ...

  1. পার্টিশন কলামটি কি প্রাথমিকের অংশ হতে হবে? এটি একটি উপায় বা অন্যভাবে সুপারিশ করা হয়?
  2. পার্টিশন কীটির জন্য আমাকে কি একটি সূচক তৈরি করতে হবে, বা ডিবিএমএস নিজে থেকে এটি স্বয়ংক্রিয়ভাবে করে?

উত্তর:


11

একেবারেই না.

পার্টিশন করার জন্য সবচেয়ে সাধারণ পরিস্থিতিগুলির মধ্যে একটি হল একটি তারিখ ক্ষেত্র ব্যবহার করা, যা আপনার পিকে সাথে পুরোপুরি সম্পর্কিত নয়।

উদাহরণস্বরূপ, আপনার যদি Ordersক্ষেত্রের সাথে একটি টেবিল থাকে আপনি OrderDateসম্ভবত মাস এবং বছরের ভিত্তিতে পার্টিশন করবেন OrderDate

যখন রেকর্ডগুলি শেষ হয়ে যায় এবং আর প্রাসঙ্গিক না হয় আপনি সেই পার্টিশনগুলিকে একটি সংরক্ষণাগার টেবিল বা ডাটাবেসে সরিয়ে নিতে পারেন যাতে সেগুলি আর প্রক্রিয়া না করে।

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

সম্পাদনা

অংশ 2 এর জন্য, আমি মনে করি উত্তরটিও ঠিক তেমন নয়। পার্টিশন কীটি কোন পার্টিশনটিকে সারিটি প্রবেশ করতে হবে তা নির্ধারণ করতে ব্যবহৃত হয়, তবে আমি মনে করি না যে কোনও সূচক বজায় রাখা হয়েছে। যদিও এর পিছনের প্রান্তে পরিসংখ্যান থাকতে পারে।


10
আমি জানি এটি পুরানো, তবে এটি আমাকে একটি ভুল পথে নিয়ে যায় তাই আমি ভেবেছিলাম যে আমি অন্যদের জন্য মন্তব্য করব। পার্টিশন বৈশিষ্ট্যের সুইচ দক্ষতা ব্যবহার করতে চাইলে পার্টিশন কলামটি প্রাথমিক কীতে থাকতে হবে। এটি প্রাথমিক কীতে না থাকলে আপনি এই ত্রুটিটি পেয়ে Partition columns for a unique index must be a subset of the index key.
যাবেন

আমি @ ভ্যাকানোর সাথে সম্মত
সান

3

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

অনেক ধরণের পরিস্থিতি রয়েছে যেখানে পার্টিশন স্কিমটি প্রাথমিক কীটির প্রথম কলামটি অনুসরণ করে - উদাহরণস্বরূপ কোনও ডেটা গুদামের দৃশ্যে যেখানে কোনও ফ্যাক্ট টেবিলের স্ন্যাপশটের তারিখ সাধারণত পার্টিশন কলামের পাশাপাশি প্রাথমিক কীতে প্রথম কলাম হয়।

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

তবে এটি কোনও প্রয়োজন নয়।


ভাল, একটি সম্পূর্ণ প্রচুর জিনিস প্রয়োজন হয় না। এমনকি সূচীকরণও প্রয়োজন হয় না! কার্যকরীভাবে বোঝার জন্য, প্রার্থী কী এর শীর্ষস্থানীয় কলামে বিভাজন করতে হবে। অন্যথায় অ্যাপটি স্থপতি কীভাবে টেবিলটি ব্যবহার করবে?
srini.venigalla

@ srini.venigalla এটি একটি সাধারণ ঘটনা, তবে অন্য একটি সাধারণ কেস (সমানভাবে?) হ'ল এমন কোনও কিছুর উপর বিভক্ত হওয়া যা মোটেই প্রাথমিক বা প্রার্থী কী এর অংশ নয় - কারণ বিভাজন প্রায়শই সংরক্ষণাগারের জন্য ব্যবহৃত হয়, একটি মেয়াদ শেষ হওয়ার তারিখ হতে পারে একটি ভাল পার্টিশন পছন্দ। তবে এমন কিছুই নেই যা বোঝায় যে এটি কোনও চাবির অংশ হতে পারে। বিভাজন একটি নিম্ন-স্তরের বৈশিষ্ট্য যা বেশ জেনেরিক এবং এখানে কমপক্ষে দুটি স্বতন্ত্র এবং বিবাদযুক্ত ব্যবহারের ধরণ রয়েছে, উভয়ের চারপাশে বৈধ সর্বোত্তম অনুশীলন রয়েছে।
কেড রক্স

0

এটি যদি প্রার্থী কী-এর অংশ না হয়ে থাকে তবে নিজেই যদি প্রাইমারী চাবি অংশ না থাকে। ধারণাটি হ'ল, আপনার পার্টিশনটি প্রাথমিক কী দিয়ে নিজেকে প্রান্তিক করা উচিত।

সুতরাং উত্তরটি হ্যাঁ, এটি পিকে অংশ হওয়ার পক্ষে পছন্দ করা হয়। অন্য কী না হলে, যা পিকে হওয়ার জন্য যথেষ্ট সমান।


প্রার্থী কী সম্পর্কে কখনও শুনিনি। কীভাবে এটি তৈরি / পরিবর্তন সারণী বিবৃতিতে একটি নির্দিষ্ট করে?
রাগান্বিত হ্যাকার

প্রার্থী কী প্রাইমারী কী হতে যোগ্য অন্য একটি কী। উদাহরণস্বরূপ, আইডি হল প্রাথমিক কী। তবে একই টেবিলে যেমন অন্য কোনও কলাম যেমন। PERSON_ID এছাড়াও স্বতন্ত্রভাবে একটি সারি সনাক্ত করতে পারে, যাকে প্রার্থী কী বলা হয়। 2 য় এবং 3 য় স্বাভাবিককরণের নিয়মগুলি সমস্ত প্রার্থী কীগুলির বিপরীতেও রাখা উচিত।
srini.venigalla

বুঝতে পারছিল না। আমার প্রশ্নের ২ য় অংশ সম্পর্কে কী?
রাগান্বিত হ্যাকার

অন্য কোনও সূচক হিসাবে একই। উদাহরণ: ক্রয় ইন্ডেক্স IX_ProductVendor_VendorID ক্রয় চলছে r উত্পাদক বিক্রেতা (BusinessEntityID);
srini.venigalla

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