অন ​​[প্রাথমিক] এর অর্থ কী?


237

আমি একটি এসকিউএল সেটআপ স্ক্রিপ্ট তৈরি করছি এবং আমি অন্য কারও স্ক্রিপ্ট উদাহরণ হিসাবে ব্যবহার করছি। স্ক্রিপ্টের উদাহরণ এখানে:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[be_Categories](
    [CategoryID] [uniqueidentifier] ROWGUIDCOL  NOT NULL CONSTRAINT [DF_be_Categories_CategoryID]  DEFAULT (newid()),
    [CategoryName] [nvarchar](50) NULL,
    [Description] [nvarchar](200) NULL,
    [ParentID] [uniqueidentifier] NULL,
 CONSTRAINT [PK_be_Categories] PRIMARY KEY CLUSTERED 
(
    [CategoryID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

কেউ কি জানেন যে অন [প্রাইমারি] কমান্ডটি কি করে?

উত্তর:


248

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

সম্পূর্ণ সিনট্যাক্সের জন্য এমএসডিএন দেখুন ।


153
এর অর্থ হ'ল এটি সাধারণত অকেজো এবং স্ক্রিপ্ট থেকে নিরাপদে সরানো যেতে পারে
এমজিওউইন

হ্যাঁ, একইভাবে আপনি কেবল ভেরিয়েবল ইনিশিয়েলেশনগুলি 0 এবং মিথ্যাতে বাদ দিতে পারেন, কারণ এটি ঠিক ডিফল্ট, তাই না?
চিহ্ন সোওল

12
@ মারকসোউল যদি না আপনার পারফরম্যান্স অনুকূল করতে এটি ব্যবহার করার উপযুক্ত কারণ না থাকে তবে হ্যাঁ, এটি বাদ দেওয়া এবং ডিফল্টটি ঘটতে দেওয়া ভাল। (অতএব "সাধারণত" এমজিওউইন অন্তর্ভুক্ত)) আপনার কোডটি একটি পরিচিত অবস্থায় কাজ করছে কিনা তা পরিবর্তনশীলগুলির সূচনা করা 0বা এটির falseবিষয়ে, যা একটি যৌক্তিক এবং নির্ভুলতা উদ্বেগ এবং অপ্টিমাইজেশনের উদ্বেগ নয়।
jpmc26

3
আমি ON PRIMARYস্ক্রিপ্টে দু'বার সিনট্যাক্স দেখতে পেয়েছি - একটি টেবিলের জন্য এবং অন্যটি টেবিলের সীমাবদ্ধতার জন্য। সঞ্চয়ের ক্ষেত্রে সারণির সীমাবদ্ধতার ক্ষেত্রে এটি কী বোঝায়? এটি আমার কাছে অপ্রাসঙ্গিক বা অপ্রয়োজনীয় শোনায়। কৃত্রিমভাবে, এটি টেবিল পর্যায়ে একবার উল্লেখ করার পক্ষে যথেষ্ট হওয়া উচিত ছিল নাকি প্রাথমিক ফাইল গ্রুপে টেবিলটি সংরক্ষণ করা সম্ভব এবং নন-প্রাইমারি ফাইল গ্রুপে টেবিলের সীমাবদ্ধতার ডেটা?
আরবিটি

1
প্রকৃত এমএসডিএন লিঙ্কটি এখানে। উত্তরের উত্তরটি আর কাজ করে না এবং আমি পোস্ট সম্পাদনা করতে পারি না!
শেখর

38

এটি বোঝায় যে আপনি যে ফাইলগ্রুপটি তৈরি করছেন সেই অবজেক্টটি কীভাবে বাস করছে। সুতরাং আপনার প্রাথমিক ফাইলগোষ্ঠীটি আপনার সার্ভারের D: drive ড্রাইভে থাকতে পারে। এরপরে আপনি সূচকগুলি নামে একটি অন্য ফাইলগ্রুপ তৈরি করতে পারেন। এই ফাইলগোষ্ঠীটি আপনার সার্ভারের E: drive ড্রাইভে থাকতে পারে।


আমি যদি প্রাথমিক ফাইল গ্রুপে টেবিলটি সংরক্ষণ করি এবং টেবিলের সীমাবদ্ধতা বা সূচি ডেটা কাঠামো একটি অন্য ফাইল গ্রুপে রাখি তবে এটির নেতিবাচক কর্মক্ষমতা প্রভাব ফেলবে?
আরবিটি

@ আরবিটি প্রচুর ভেরিয়েবল রয়েছে যা এটি প্রভাবিত করতে পারে এবং সাধারণত প্রচুর উত্তর "এটি নির্ভর করে তবে ..." দিয়ে শুরু হবে dba.stackexchange.com/questions/2626/… এবং সম্পর্কিত প্রশ্নগুলি দেখুন
কোডিংবাজার

16

অন ​​[প্রাথমিক] "প্রাথমিক" ফাইলগ্রুপের কাঠামো তৈরি করবে। এই ক্ষেত্রে প্রাথমিক কী সূচক এবং টেবিলটি ডাটাবেসের মধ্যে "প্রাথমিক" ফাইলগ্রুপে স্থাপন করা হবে।


7

মার্ক এস তার পোস্টে কী উল্লেখ করেছে তার একটি খুব গুরুত্বপূর্ণ নোট যুক্ত করতে। প্রশ্নে উল্লিখিত সুনির্দিষ্ট এসকিউএল স্ক্রিপ্টে আপনি আপনার ডেটা সারি এবং সূচী ডেটা কাঠামো সংরক্ষণের জন্য দুটি পৃথক ফাইল গোষ্ঠী উল্লেখ করতে পারবেন না।

এক্ষেত্রে সূচকটি তৈরি হচ্ছে তা আপনার প্রাথমিক কী কলামে একটি ক্লাস্টার্ড সূচক। ক্লাস্টারড ইনডেক্স ডেটা এবং আপনার টেবিলের ডেটা সারিগুলি বিভিন্ন ফাইল গোষ্ঠীতে কখনও থাকতে পারে না

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

CREATE TABLE [dbo].[be_Categories](
    [CategoryID] [uniqueidentifier] ROWGUIDCOL  NOT NULL CONSTRAINT [DF_be_Categories_CategoryID]  DEFAULT (newid()),
    [CategoryName] [nvarchar](50) NULL,
    [Description] [nvarchar](200) NULL,
    [ParentID] [uniqueidentifier] NULL,
 CONSTRAINT [PK_be_Categories] PRIMARY KEY CLUSTERED 
(
    [CategoryID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [SECONDARY]
GO

দ্রষ্টব্য: আপনার সূচকটি কেবলমাত্র আলাদা ফাইল গোষ্ঠীতে থাকতে পারে যদি সূচকটি তৈরি হচ্ছে অ-গুচ্ছ প্রকৃতির

নীচের স্ক্রিপ্টটি যা একটি ক্লাস্টারবিহীন সূচক তৈরি করে তার [SECONDARY]পরিবর্তে ফাইল গ্রুপে তৈরি হবে যখন টেবিল ডেটা ইতিমধ্যে [PRIMARY]ফাইল গ্রুপে থাকে:

CREATE NONCLUSTERED INDEX [IX_Categories] ON [dbo].[be_Categories]
(
    [CategoryName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [Secondary]
GO

আলাদা ফাইল গ্রুপে নন-ক্লাস্টারড ইনডেক্সগুলি কীভাবে আপনার প্রশ্নগুলি আরও ভাল করতে সহায়তা করতে পারে সে সম্পর্কে আপনি আরও তথ্য পেতে পারেন। এই জাতীয় একটি লিঙ্ক এখানে

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