آموزش گام به گام قسمت بندی(partitioning) در SQL Server
مرحله اول – یک پایگاه داده تستی با دو filegroup مختلف بسازید.این متن برای بیان مثال از درایو C کامپیوتر استفاده میکند. اگرچه باد بیان کنم که برای به دست آوردن بهترین سطح کارایی قسمتبندی بهتر است که filegroup ها در دیسکهای سخت مجزا تعریف شوند. قبل از اجرای اسکریپت زیر، مطمئن شوید که درایو C کامپیوتر شما حاوی دو فولدر میباشد.فولدرهای Primary و Secondary در مثال زیر دو فولدری هستند که برای filegroup های مختلف تعریف شدهاند. اسکرپت زیر را برای ساختن پایگاه داده تستی اجرا نمایید.
USE Master;GO--- Step 1 : Create New Test Database with two different filegroups.IF EXISTS (SELECT nameFROM sys.databasesWHERE name = N'TestDB')DROP DATABASE TestDB;GOCREATE DATABASE TestDBON PRIMARY(NAME='TestDB_Part1',FILENAME='C:\Data\Primary\TestDB_Part1.mdf',SIZE=2,MAXSIZE=100,FILEGROWTH=1 ),FILEGROUP TestDB_Part2(NAME = 'TestDB_Part2',FILENAME ='C:\Data\Secondary\TestDB_Part2.ndf',SIZE = 2,MAXSIZE=100,FILEGROWTH=1 );GO
پاسخ به:آموزش گام به گام قسمت بندی(partitioning) در SQL Server
مرحله دوم – تابع محدوده قسمتبندی را بسازید. تابع قسمتبندی محدوده مقادیری که در قسمت متفاوت ذخیره شده است را تعریف مینماید. برای مثال اجازه دهید که تصور کنیم ۱۰ رکورد اول در یک filegroup و مابقی در filegroup دیگر ذخیره شده است. تابع زیر، تابع قسمتبندی را با محدوده مشخص تعریف خواهد کرد.
USE TestDB;GO--- Step 2 : Create Partition Range FunctionCREATE PARTITION FUNCTION TestDB_PartitionRange (INT)AS RANGE LEFT FORVALUES (10);GO
مرحله سوم – طرح قسمتبندی را به filegroup ها الحاق کنید. تابع قسمتبندی باید به filegroup ها الحاق شود تا در قسمتبندی جدول استفاده شود. در مثال زیر قسمتبندی روی filegroup های primary و secondary ساخته شده است.
USE TestDB;GO--- Step 3 : Attach Partition Scheme to FileGroupsCREATE PARTITION SCHEME TestDB_PartitionSchemeAS PARTITION TestDB_PartitionRangeTO ([PRIMARY], TestDB_Part2);GO
مرحله چهارم – ساختن جدول با کلید و طرح قسمتبندی جدولی که باید قسمتبندی شود باید به صورتی ساخته شود که دارای ستونی با نامی باشد که با طرح قسمتبندی برای قسمتبندی جداول در filegroup های مختلف استفاده شود. مثال زیر ستونهای شناسه را به عنوان کلید قسمتبندی نشان داده است.
USE TestDB;GO--- Step 4 : Create Table with Partition Key and Partition SchemeCREATE TABLE TestTable(ID INT NOT NULL,Date DATETIME)ON TestDB_PartitionScheme (ID);GO
مرحله پنجم – ساخت اندیس روی جدول قسمتبندی شده که بحثی اختیاری و توصیه شده است. این مرحله اختیاریست اما به شدت توصیه شده است. مثال زیر نحوه ساخت اندیسهای ردیف شده جدول را نشان میدهد. در اینجا اندیس با استفاده از طرح قسمتبندی و کلید قسمتبندی به عنوان یک جدول قسمتبندی شده ساخته شده است.
USE TestDB;GO--- Step 5 : (Optional/Recommended) Create Index on Partitioned TableCREATE UNIQUE CLUSTERED INDEX IX_TestTableON TestTable(ID)ON TestDB_PartitionScheme (ID);GO
مرحله ششم - وارد کردن داده در جدول قسمتبندی شدهداده ها را در جدول قسمتبندی شده وارد کنید. در اینجا کل ۳ رکورد را وارد میکنیم. قبلا تصمیم گرفته بودیم که در قسمتبندی اول شناسه کلیدهای قسمتبندی یک تا ده را قرار دهیم و مابقی رکوردها را در قسمت دوم قرار دهیم. در مثال زیر رکورد با شناسه (ID) برابر ۱ وارد قسمت اول شده است و مابقی در قسمت دوم وارد خواهند شد.
USE TestDB;GO--- Step 6 : Insert Data in Partitioned TableINSERT INTO TestTable (ID, Date) -- Inserted in Partition 1VALUES (1,GETDATE());INSERT INTO TestTable (ID, Date) -- Inserted in Partition 2VALUES (11,GETDATE());INSERT INTO TestTable (ID, Date) -- Inserted in Partition 2VALUES (12,GETDATE());GO
مرحله هفتم – داده را از جدول تستی آزمایش کنید.روی جدول TestTable جستجو بزنید و داده های وارد شده در آن را ببینید.
USE TestDB;GO--- Step 7 : Test Data from TestTableSELECT *FROM TestTable;GO
مرحله هشتم – درستی یا نادرستی وارد شدن داده ها را بررسی نمایید.میتوانیم روی view با نام sys.partitions کوئری بزنیم و بررسی کنیم که جدول TestTable شامل دو قسمت است و همانطور که در مرحله ۶ بیان شد، یک رکورد وارد قسمت ۱ و دو رکورد وارد قسمت ۲ شدهاند.
USE TestDB;GO--- Step 8 : Verify Rows Inserted in PartitionsSELECT *FROM sys.partitionsWHERE OBJECT_NAME(OBJECT_ID)='TestTable';GO
منبع مطلب
ممنون و در مورد TRANSACTION توضیح بدهید .
Gugel.Persianblog.ir