الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ما هو partion والفرق بين partition schema, partion table,partition indexe

بدأه a_elbadrawy في 28 يونيو 2011 · 11 رد · 2,335 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته

أخوانى ما هى فائده partition فى ال lsql server وفى أى الأوقات يمكننى إستخدامها؟

السؤال الأخر ,, ما الفرق بين nonclustered index و clustered index

شكراً جزيلاً

فى أمان الله

Practice makes perfect 2007*

البرمجة بلا انطباعات

#2

السلام عليكم ورحمه الله وبركاته

اخي شوف الرابط التالي http://msdn.microsoft.com/en-us/library/ms345146%28v=sql.90%29.aspx لمعرفة الكثير عن ال Partition, اما الفرق بين Clustered Index و ال Non-Clustered Index يمكنني اختصر الفرق في الرابط التالي http://www.geekinterview.com/question_details/36554

.:: Wish to become better and better ::.

#3

الـــPartitioned Table هي تقنية تستخدم لزيادة سرعة إسترجاع السجلات من الجداول وذالك من خلال تقسيم الجداول الواحد إلى عدة اقسام Partitions حيث إن هذا التقسيم يكون Physical يعني على الهارد مش نفس الfilegroup اللي بيقسم قاعدة البيانات الى أقسام بس logical .... مثلا :

لو عندي هذا الجدول

post-126189-007090400 1309260569_thumb.p

وأريد أن أعمل استخرج السجلات اللي يكون تاريخ الانتاج فيها ما بين 2001-5-1 و 2002-5-1 هنا سيتم عمل scan على كل سجلات الجدول ليتم إستخراج تلك البيانات ....هذا في حالة عدم استخدام partitioned table

أما في حالة إستخدام الــpartitioned table سيتم تخزين الجدول على عدة أقسام كل قسم له بداية ونهاية وطبعا انا اللي بحدد كل قسم و بداية ونهاية كل واحد و عند البحث يقوم sql engine بتحديد القسم اللي بتبحث فيه وبعد ذالك يقوم بالبحث عن تلك السجلات في هذا القسم فقط وبكذا تم تقليل وقت البحث في استرجاع البيانات ...

هذا الpartitiord table بإيجاز لتعرف أكثر عنه ادخل على الرابط على وضعة vb_helper

أما بالنسبة الفرق بين clustered index و non clustered index :

- clustered index :

1- بطىء في عملية الاضافة والخذف والتعديل .

2- سريع في عملية البحث .

3- يتم تخزين السجلات على ترتيب حقل معين ( يعني البيانات مخزنة بالترتيب) .

4- يتم حجز مساحة لتخزين بيانات هذا الindex .

5- في البحث يعتمد على قيم الــindex key .

- non clustered index :

1- سريع في عملية الاضافة والتعديل و الحذف.

2- بطىء في البحث.

3- لايتم تخزين السجلات بترتيب حقل معين .

4- في البحث يعتمد على ID السجل ويسمى Pointer

بقية الفروق ادخل على الرابط اللي وضعة vb_helper

لو في أي شىء مش مفهوم ارجو ان تقول عليه لان هذه المواضيع مهمه جدا ومش مشروحة تمام في كتب مايكروسوفت .....بالتوفيق

المرفقات
12.PNG

تم تعديل هذه المشاركة بواسطة medo_Programming في 28 يونيو 2011 في 14:47

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#4

بسم الله ما شاء الله

ألف شكر أخوانى

ما كنت أريده بعض جمله t-sql بسيطه لطريقه ال partition لأنها معقده فى كتب مايكروسوفت وكذلك جمله خاصه nonclustered بالنسبه insert

ألف ألف شكر أخوانى

فى أمان الله

Practice makes perfect 2007*

البرمجة بلا انطباعات

#5

السلام عليكم ورحمه الله وبركاته

اخي لم توضح ما طلبته اخيرا في موضوعك الاساسي؟!!

.:: Wish to become better and better ::.

#6
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي لم توضح ما طلبته اخيرا في موضوعك الاساسي؟!!

ما اقصده اخى جمله create partition كمثال على northwind مثلاً لانى مش قادر اطبقها بالsyntax الموجود فى مايكروسوفت

Practice makes perfect 2007*

البرمجة بلا انطباعات

#7

لعمل partition table يجب أن يكون النسخة enterprise أو developer وتتبع هذه الخطوات :

1- إنشاء filegroup لكل قسم :

ALTER DATABASE TEST ADD FILEGROUP PART1
GO
ALTER DATABASE TEST ADD FILEGROUP PART2
GO
ALTER DATABASE TEST ADD FILEGROUP PART3
GO
ALTER DATABASE TEST ADD FILEGROUP PART4
GO

2- انشاء partiton function تحدد فيها الاقسام :

CREATE PARTITION FUNCTION  myFunction(INT)
AS RANGE LEFT FOR VALUES('10','20','30') 
GO

3- انشاء partition scheme وربطها ب partition function ووضع كل قسم ب File Group اللي تريده في المثال الحالي عندنا اربع اقسام

CREATE PARTITION SCHEME myScheme
AS PARTITION myFunction 
TO (PART1,PART2,PART3,PART4)
GO

4- انشاء الجدول مع ربطة الاقسام :

CREATE TABLE TEMP_TB(ID INT IDENTITY(1,1),
                     ITEM NVARCHAR(255),
                     AMOUNT INT) ON myScheme(AMOUNT)

ملحوظة :

الint تعني نوع الحقل اللي حيتم التقسيم على اساسه ....ايضا كلمة Left تحدد نوع التقسيم

لمزيد من المعلومات ادخل على هذا الرابط الجيد http://msdn.microsoft.com/en-us/library/ms187802.aspx

ارجو ان يكون مفهوم :)

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#8

السلام عليكم ورحمه الله وبركاته

اخي اضيف لما قاله الاخ medo_programming شوف الرابط التالي http://blogs.msdn.com/b/manisblog/archive/2009/01/18/easy-table-partitions-with-sql-server-2008.aspx والذي يشرح الطريقة باستخدام ال SQL Server Management Studio

.:: Wish to become better and better ::.

#9

أخي vb helper الرابط اللي فوق مفيد جدا انا ما كنت اعرف انه ممكن أعمل partition table باستخدام الSSMS .... شكرا على الرابط

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#10

السلام عليكم ورحمه الله وبركاته

لاشكر على واجب اخي .. بالتوفيق ..

.:: Wish to become better and better ::.

#11

انا عاااجز عن الشكر اخوانى

تمت تجربه جمل السكوال مع طرق SSMS بنجاح

جزاكم الله كل خير وجعله فى ميزان حسناتكم

Practice makes perfect 2007*

البرمجة بلا انطباعات

#12

السلام عليكم ورحمه الله وبركاته

لاشكر على واجب اخي .. بالتوفيق ..

.:: Wish to become better and better ::.

مواضيع مشابهة