টেবিলে পিকে বনাম সংক্ষেপণের মধ্যে কী আলাদা?


9

ডাটা সংক্ষেপণটি টেবিলটিতে সেট করা যেতে পারে:

CREATE TABLE dbo.SomeTable(
    SomeId [bigint] NOT NULL,
    OtherId [bigint] NOT NULL,
    IsActive [bit] NOT NULL,
 CONSTRAINT [PK_Some] PRIMARY KEY CLUSTERED 
 (
    SomeId Desc
 )
) ON SomePartitionScheme(SomeId) WITH (DATA_COMPRESSION=PAGE)

এবং এটি প্রাথমিক কীতে সংজ্ঞায়িত করা যেতে পারে:

CREATE TABLE dbo.SomeTable(
    SomeId [bigint] NOT NULL,
    OtherId [bigint] NOT NULL,
    IsActive [bit] NOT NULL,
 CONSTRAINT [PK_Some] PRIMARY KEY CLUSTERED 
 (
    SomeId Desc
 ) WITH (DATA_COMPRESSION=PAGE)
) ON SomePartitionScheme(SomeId) 

তবে আপনি যদি এটি উভয়ই রাখেন তবে আপনি এই ত্রুটিটি পান:

টেবিলের জন্য ডেটা_কোম্প্রেশন বিকল্পটি একাধিকবার নির্দিষ্ট করা হয়েছিল, বা টেবিলটি বিভাজনিত থাকলে এর কমপক্ষে একটি পার্টিশনের জন্য।

এটি টেবিলে পিকে বনাম রাখার কোনও পার্থক্য আছে কি?


আপনি কি মনে করেন যে প্রাথমিক কীটি টেবিলের ক্লাস্টার্ড কলামটি না হলে কোনও পার্থক্য হবে ? :)
লোলিডিবিএ

1
@ জনম: আমারও তাই অনুমান হবে, তবে আমি জানি না। (এজন্যই আমি জিজ্ঞাসা করছি :)
ভ্যাকানো

উত্তর:


14

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


যদি সমস্ত যৌক্তিকতাকে অস্বীকার করে আপনি নিজের প্রাথমিক কীটিকে একটি ক্লাস্টারযুক্ত সূচক বানিয়ে আলাদা ক্লাস্টার ইনডেক্স তৈরি করেন তবে কী হবে? সংক্ষেপে আবার কি একই হবে?
রস প্রেসার

1
এটা হবে না। এখানে প্রাথমিক কী সম্পর্কে চিন্তা করবেন না, এটি অপ্রাসঙ্গিক। আমাদের এখানে সূচকের দিকে ফোকাস করা দরকার, ক্লাস্টারযুক্ত এবং অ-ক্লাস্টারযুক্ত। আপনি পৃথকভাবে একটি ক্লাস্টার ইনডেক্স এবং একটি টেবিল সংক্ষেপ করতে পারবেন না কারণ তারা একই বস্তু। ক্লাস্টারড ইনডেক্স / টেবিল এবং নন-ক্লাস্টার ইনডেক্সগুলি পৃথক বস্তু এবং পৃথকভাবে সংকুচিত হতে হয়।
মাইক ফাল

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

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