0

آموزش گام به گام قسمت بندی(partitioning) در SQL Server

 
takhtejamshid
takhtejamshid
کاربر برنزی
تاریخ عضویت : مهر 1388 
تعداد پست ها : 494
محل سکونت : اصفهان

آموزش گام به گام قسمت بندی(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 name
FROM sys.databases
WHERE name = N'TestDB')
DROP DATABASE TestDB;
GO
CREATE DATABASE TestDB
ON 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


mobile
سلام
پنج شنبه 23 مهر 1388  3:48 AM
تشکرات از این پست
takhtejamshid
takhtejamshid
کاربر برنزی
تاریخ عضویت : مهر 1388 
تعداد پست ها : 494
محل سکونت : اصفهان

پاسخ به:آموزش گام به گام قسمت بندی(partitioning) در SQL Server

مرحله دوم – تابع محدوده قسمت‌بندی را بسازید.
تابع قسمت‌بندی محدوده مقادیری که در قسمت متفاوت ذخیره شده است را تعریف مینماید. برای مثال اجازه دهید که تصور کنیم ۱۰ رکورد اول در یک filegroup و مابقی در filegroup دیگر ذخیره شده است. تابع زیر، تابع قسمت‌بندی را با محدوده مشخص تعریف خواهد کرد.


USE TestDB;
GO
--- Step 2 : Create Partition Range Function
CREATE PARTITION FUNCTION TestDB_PartitionRange (INT)
AS RANGE LEFT FOR
VALUES (10);
GO

mobile
سلام
پنج شنبه 23 مهر 1388  3:49 AM
تشکرات از این پست
takhtejamshid
takhtejamshid
کاربر برنزی
تاریخ عضویت : مهر 1388 
تعداد پست ها : 494
محل سکونت : اصفهان

پاسخ به:آموزش گام به گام قسمت بندی(partitioning) در SQL Server

مرحله سوم – طرح قسمت‌بندی را به filegroup ها الحاق کنید.
تابع قسمت‌بندی باید به filegroup ها الحاق شود تا در قسمت‌بندی جدول استفاده شود. در مثال زیر قسمت‌بندی روی filegroup های primary و secondary ساخته شده است.


USE TestDB;
GO
--- Step 3 : Attach Partition Scheme to FileGroups
CREATE PARTITION SCHEME TestDB_PartitionScheme
AS PARTITION TestDB_PartitionRange
TO ([PRIMARY], TestDB_Part2);
GO


مرحله چهارم – ساختن جدول با کلید و طرح قسمت‌بندی
جدولی که باید قسمت‌بندی شود باید به صورتی ساخته شود که دارای ستونی با نامی باشد که با  طرح قسمت‌بندی برای قسمت‌بندی جداول در filegroup های مختلف استفاده شود. مثال زیر ستونهای شناسه را به عنوان کلید قسمت‌بندی نشان داده است.


USE TestDB;
GO
--- Step 4 : Create Table with Partition Key and Partition Scheme
CREATE TABLE TestTable
(ID INT NOT NULL,
Date DATETIME)
ON TestDB_PartitionScheme (ID);
GO


مرحله پنجم – ساخت اندیس روی جدول قسمت‌بندی شده که بحثی اختیاری و توصیه شده است.
این مرحله اختیاریست اما به شدت توصیه شده است. مثال زیر نحوه ساخت اندیسهای ردیف شده جدول را نشان میدهد. در اینجا اندیس با استفاده از طرح قسمت‌بندی و کلید قسمت‌بندی به عنوان یک جدول قسمت‌بندی شده ساخته شده است.


USE TestDB;
GO
--- Step 5 : (Optional/Recommended) Create Index on Partitioned Table
CREATE UNIQUE CLUSTERED INDEX IX_TestTable
ON TestTable(ID)
ON TestDB_PartitionScheme (ID);
GO


mobile
سلام
پنج شنبه 23 مهر 1388  3:49 AM
تشکرات از این پست
takhtejamshid
takhtejamshid
کاربر برنزی
تاریخ عضویت : مهر 1388 
تعداد پست ها : 494
محل سکونت : اصفهان

پاسخ به:آموزش گام به گام قسمت بندی(partitioning) در SQL Server


مرحله ششم -  وارد کردن داده در جدول قسمت‌بندی شده
داده ها را در جدول قسمت‌بندی شده وارد کنید. در اینجا کل ۳ رکورد را وارد میکنیم. قبلا تصمیم گرفته بودیم که در قسمت‌بندی اول شناسه کلیدهای قسمت‌بندی یک تا ده را قرار دهیم و مابقی رکوردها را در قسمت دوم قرار دهیم. در مثال زیر رکورد با شناسه (ID) برابر ۱ وارد قسمت اول شده است و مابقی در قسمت دوم وارد خواهند شد.


USE TestDB;
GO
--- Step 6 : Insert Data in Partitioned Table
INSERT INTO TestTable (ID, Date) -- Inserted in Partition 1
VALUES (1,GETDATE());
INSERT INTO TestTable (ID, Date) -- Inserted in Partition 2
VALUES (11,GETDATE());
INSERT INTO TestTable (ID, Date) -- Inserted in Partition 2
VALUES (12,GETDATE());
GO


مرحله هفتم – داده را از جدول تستی آزمایش کنید.
روی جدول TestTable جستجو بزنید و داده های وارد شده در آن را ببینید.


USE TestDB;
GO
--- Step 7 : Test Data from TestTable
SELECT *
FROM TestTable;
GO

مرحله هشتم – درستی یا نادرستی وارد شدن داده ها را بررسی نمایید.
میتوانیم روی view با نام sys.partitions کوئری بزنیم و بررسی کنیم که جدول TestTable شامل دو قسمت است و همانطور که در مرحله ۶ بیان شد، یک رکورد وارد قسمت ۱ و دو رکورد وارد قسمت ۲ شده‌اند.


USE TestDB;
GO
--- Step 8 : Verify Rows Inserted in Partitions
SELECT *
FROM sys.partitions
WHERE OBJECT_NAME(OBJECT_ID)='TestTable';
GO

منبع مطلب


mobile
سلام
پنج شنبه 23 مهر 1388  3:50 AM
تشکرات از این پست
cooper
cooper
کاربر برنزی
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 689
محل سکونت : سمنان

پاسخ به:آموزش گام به گام قسمت بندی(partitioning) در SQL Server

 جالب بود
Learn from yesterday, live for today,hope for tomorrow.The important thing is not to stop questioning.
Albert Einstei

 

پنج شنبه 23 مهر 1388  9:48 AM
تشکرات از این پست
davood_amega
davood_amega
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 33
محل سکونت : قزوین

پاسخ به:آموزش گام به گام قسمت بندی(partitioning) در SQL Server

ممنون و در مورد TRANSACTION توضیح بدهید .

Gugel.Persianblog.ir

پنج شنبه 20 آبان 1389  4:12 PM
تشکرات از این پست
دسترسی سریع به انجمن ها