السلام عليكم ورحمه الله وبركاته
أخوانى ما هى فائده partition فى ال lsql server وفى أى الأوقات يمكننى إستخدامها؟
السؤال الأخر ,, ما الفرق بين nonclustered index و clustered index
شكراً جزيلاً
فى أمان الله
السلام عليكم ورحمه الله وبركاته
أخوانى ما هى فائده partition فى ال lsql server وفى أى الأوقات يمكننى إستخدامها؟
السؤال الأخر ,, ما الفرق بين nonclustered index و clustered index
شكراً جزيلاً
فى أمان الله
Practice makes perfect 2007*
البرمجة بلا انطباعات
السلام عليكم ورحمه الله وبركاته
اخي شوف الرابط التالي 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 ::.
الـــPartitioned Table هي تقنية تستخدم لزيادة سرعة إسترجاع السجلات من الجداول وذالك من خلال تقسيم الجداول الواحد إلى عدة اقسام Partitions حيث إن هذا التقسيم يكون Physical يعني على الهارد مش نفس الfilegroup اللي بيقسم قاعدة البيانات الى أقسام بس logical .... مثلا :
لو عندي هذا الجدول
وأريد أن أعمل استخرج السجلات اللي يكون تاريخ الانتاج فيها ما بين 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
لو في أي شىء مش مفهوم ارجو ان تقول عليه لان هذه المواضيع مهمه جدا ومش مشروحة تمام في كتب مايكروسوفت .....بالتوفيق
تم تعديل هذه المشاركة بواسطة medo_Programming في 28 يونيو 2011 في 14:47
فلسطين .. سوريا ..بورما ......وماذا بعد ؟!
سابقا
medo_programming
موقعي : www.alkhayat-it.com
مواضيع مهمه
-----------------------------------------------:
بسم الله ما شاء الله
ألف شكر أخوانى
ما كنت أريده بعض جمله t-sql بسيطه لطريقه ال partition لأنها معقده فى كتب مايكروسوفت وكذلك جمله خاصه nonclustered بالنسبه insert
ألف ألف شكر أخوانى
فى أمان الله
Practice makes perfect 2007*
البرمجة بلا انطباعات
السلام عليكم ورحمه الله وبركاته
اخي لم توضح ما طلبته اخيرا في موضوعك الاساسي؟!!
.:: Wish to become better and better ::.
VB Helper كتب:السلام عليكم ورحمه الله وبركاته
اخي لم توضح ما طلبته اخيرا في موضوعك الاساسي؟!!
ما اقصده اخى جمله create partition كمثال على northwind مثلاً لانى مش قادر اطبقها بالsyntax الموجود فى مايكروسوفت
Practice makes perfect 2007*
البرمجة بلا انطباعات
لعمل 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')
GO3- انشاء 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
مواضيع مهمه
-----------------------------------------------:
السلام عليكم ورحمه الله وبركاته
اخي اضيف لما قاله الاخ 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 ::.
أخي vb helper الرابط اللي فوق مفيد جدا انا ما كنت اعرف انه ممكن أعمل partition table باستخدام الSSMS .... شكرا على الرابط
فلسطين .. سوريا ..بورما ......وماذا بعد ؟!
سابقا
medo_programming
موقعي : www.alkhayat-it.com
مواضيع مهمه
-----------------------------------------------:
السلام عليكم ورحمه الله وبركاته
لاشكر على واجب اخي .. بالتوفيق ..
.:: Wish to become better and better ::.
انا عاااجز عن الشكر اخوانى
تمت تجربه جمل السكوال مع طرق SSMS بنجاح
جزاكم الله كل خير وجعله فى ميزان حسناتكم
Practice makes perfect 2007*
البرمجة بلا انطباعات
السلام عليكم ورحمه الله وبركاته
لاشكر على واجب اخي .. بالتوفيق ..
.:: Wish to become better and better ::.