مجلس أوراق ملونة أوراقـ متساقطهـ على شغافـ قلوبكمـ .. [تم تحديث قوانين القسم نسعد بإطلاعكم]


عدد مرات النقر : 25,765
عدد  مرات الظهور : 36,530,480

موضوع مغلق
 
LinkBack أدوات الموضوع انواع عرض الموضوع
قديم 31-08-2006, 11:59 PM   #1

الصورة الرمزية صمت الجمال

 رقم العضوية :  35
 تاريخ التسجيل :  06-09-2004
 المشاركات :  1,120
 العمر :  38
 عدد النقاط :  10
 قوة التقييم :  صمت الجمال is on a distinguished road
 اخر مواضيع » صمت الجمال
 تفاصيل مشاركات » صمت الجمال
 أوسمة و جوائز » صمت الجمال
 معلومات الاتصال بـ صمت الجمال

افتراضي طرق لتسريع عمل Sql


طرق لتسريع عمل SQL

منقوووول




عادة ما يرتبط تسريع SQL Server بتقليل عمليات IO= Input/ Output لأقل حد ممكن.

بالنسبة لتصميم الجداول:
1- حاول تبسيط Normalize الجداول لمرتبة التبسيط الثالثة 3NF ما أمكن، وبالتالي ستتجنب تكرار البيانات وعمليات التحديث الشاذة update anomalies وتقليل البيانات المسترجعة بواسطة الاستعلامات (بمعنى آخر تسريعها).
التبسيط سيؤدي لتقليل الأعمدة في الجدول، وبالتالي "حشر" سجلات أكثر في صفحة البيانات الواحدة، مما يعني تقليل عمليات IO المطلوية للوصول للبيانات.
ولكن التبسيط لمرتبة أعلى من الثالثة تكثر عمليات الربط joining بين الجداول (بالذات عند الاستعلام) وبالتالي تقليل الأداء.

ملاحظة: إذا كانت قاعدة البيانات مخصصة للتحليل أكثر من التحديث، فقلل التبسيط، لأن الربط في حالة التبسيط قد يقلل من كفاءة وسرعة تحليل البيانات.

2- إذا كانت قاعدة البيانات تحوي الكثير من البيانات، فقسم البيانات أفقيا partition data horizontally ، مثلا قسم بيانات الجدول لجدولين أحدهما يحوي بيانات السنة الحالية والآخر يحوي البيانات القديمة، مما يحصر البيانات المطلوبة غالبا في السنة الحالية ويقلل كمية البيانات المسترجعة، مما يعني تقليل عمليات IO.

3- حاول تقليل البيانات المسترجعة في الاستعلامات، أو بكلمة أخرى لاتفتح recordsets ضخمة، وذلك بوضع مزيد من الشروط في جزء where من جملة select.

4- إذا كان ممكنا استعمل القيود العلائقية بين البيانات relational constraints بدلا من استعمال الTriggers و الrules و الdefaults، لقابلية الخطأ الكبيرة فيها عندما تستعمل لمحاكاة القيود العلائقية.
أيضا إذا أمكن استعمل القيود العلائقية المتتالية cascading relational constraints بدلا من الtriggers، فعمل حذف متتالي cascading delete أو تحديث متتالي cascading update لايتطلب أكثر من فقرة on delete أو فقرة on update في جزء references من جملة create table أو alter table بدلا من كتابة Trigger مخصص لذلك وقضاء وقت آخر في عمل debugging له.

5- حاول التقليل بقدر الإمكان من وجود الnull values ، لإنها تعني إما القيمة غير موجودة أو غير معروفة، وتسبب أخطاء في حال استعمال دوال حسابية.

6- حاول تضييق أحجام حقول الجدول، ليقلل حجم الحقل، وبالتالي يقلل حجم الجدول، مما يعني تسريع الاستعلامات.
كيف أضيقها؟
- إذا كنت ستخزن أرقاما صحيحة ما بين 0-255 ، استعمل النوع tinyint (يحتاج ل1 بايت فقط).
-إذا كنت ستخزن أرقاما صحيحة ما بين -32768 إلى 32767 ، استعمل النوع smallint(يحتاج ل2 بايت فقط).
-إذا كنت ستخزن أرقاما صحيحة ما بين -2147483648 إلى 2147483647 ، استعمل النوع int(يحتاج ل4 بايت، قارن)

- إذا كنت ستخزن قيما نقدية مابين -214748.3648 إلى 214748.3648 استعمل النوع smallmoney (يحتاج ل4 بايت فقط)
- إذا كنت ستخزن قيما نقدية أكبر أو أصغر بكثيييير وتحتاج لدقة أعداد عشرية أكثر فاستعمل النوع money (يحتاج ل8 بايت، قارن).
وجهة نظر: إذا كان اقتصاد بلدك يعاني من التضخم فاستعمل النوع money بدون أقل تفكير.

- إذا كنت ستخزن تواريخ ما بين 1/1/1900 إلى 6/6/2079 مع دقة لمستوع الدقيقة فاستعمل النوع smalldatetime (يحتاج ل4 بايت فقط) أما إذا كان مدى التواريخ أبعد أو كان مطلوبا دقة أكبر فاستعمل النوع datetime (يحتاج ل8 بايت، قارن).
وجهة نظر: هل تتوقع لقاعدة بياناتك أن تظل تعمل بإذن الله بعد عام 2079 ، استعمل datetime.

- استعمل النوعين varchar و nvarchar بدلا من النوعين char و nchar بقدر الإمكان، لأن النوعين الأخيرين يبذران الحيز التخزيني في مسافات فارغة (كما شرحنا أكثر من مرة ).

- استعمل النوعين varchar و nvarchar بدلا من ************/n************ بقدر الإمكان، لأن محرك قاعدة البيانات يخزن صفحات البيانات data pages المخصصة للنوعين ************/Image بعيدا عن صفحات البيانات المخصصة للأنواع الأخرى. لذا فالوصول للنوعين ************/n************ سيستغرق وقتا إضافيا.

وأيضا من الافضل ان تقوم بتقسيم قاعدة البيانات إلى جزئين الاول خاص بال Data ************ Schema و الاخر تحتوى على الملفات من خلال انشاء ملف MDF (Primary Data File ) يحتوى على ال Schema فقط و انشاء ملف NDF (Secondary Data File ) يحتوى على الداتا ساقوم بالتوضيح عبر الكود



Create data************ Arabteam2000
On Primary
(
NAME = Arabteam_dat,
FILENAME = 'c:\Arabteam2000.mdf',
SIZE = 4,--Initial Size 4 MB
MAXSIZE = 10,--Maximum Size 10 MB
FILEGROWTH = 10 %
)
Log On
(
NAME = Arabteam_Log,
FILENAME = 'c:\Arabteam2000.ldf',
SIZE = 5,--Initial Size 4 MB
MAXSIZE = 10,--Maximum Size 10 MB
FILEGROWTH = 10 %
)


هنا قمت بانشاء Primary Data file يحوى ال Schema فقط بدون بيانات و الان سنقوم بانشاء Secondary Data File ليحتوى على البيانات سنقوم اولاً بانشاء FileGroup و هى تجميع منطقى يحتوى على ملفات البيانات



كود:
--Create Second FileGroup Alter Data************ Arabteam2000 add filegroup [SecondFG]
و من ثم سنقوم باضافة ملفات البيانات لل FileGroup



كود:
--Add Files To File Group
Alter Data************ Arabteam2000
Add file
(
Name =Arabteam2000_Data2,
FileName = 'D:\Arabteam2000_Data.ndf',
Size=2,
MaxSize=10,
FileGrowth=1MB
)
To FileGroup [SecondFG]



لاحظ اننى حددت ان هذا الملف سيكون لل FileGroup التى سبق و انشئتها .... يمكنك اضافة اكثر من ملف لل FileGroup التى ترغب فى كتابة البيانات عليها
الان سنأتى للخطوة الاخيرة الا و هى تحديد اى ال FileGroup التى ستعتبر ال Default FileGroup لكتابة البيانات عليها



كود:
--Make The Default FileGroup Alter Data************ Arabteam2000 Modify FileGroup [SecondFG] Default

الفائدة هنا هى تنظيم و تقليل ال IO لقراءة البيانات فتقسيم ملفات البيانات عبر ال FileGroup بالترتيب سيمكن ال SQL Server من الكتابة و القراءة على الملفات فى نفس الوقت بدلاً من قراءة او الكتابة على كل ملف على حدة مما يقلل من ال IO
فى حال لاحظت ستجد ان هذا الاسلوب مشابه لاسلوب عمل ال Raid5 مع الهاردات مما يعطى كفائة عند العمل مع ملفات البيانات ذات الاحجام الكبيرة و يسهل عليك صيانة ال Data************ Schema
فى نفس الوقت او نقلها للاستفادة بها فى مشروع اخر

توقيع :




أنا رحاله صغير أحمل في جيبي بذور ( بذور محبه ) كلما التقيت بإنسان زرعة معه بذوري إن سقاها كبرت وأينعت وإن لم يسقها ماتت واندثرت
وما همني إن سقاها أو ماتت ما يهمني هو عندما أصعد قمت الجبل وأنظر خلفي وأرى بساتين المحبة أشعر حينها بالإنسانيه


صمت الجمال غير متواجد حالياً
رسالة لكل زوار منتديات العبير

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

قديم 01-09-2006, 11:23 AM   #2

الصورة الرمزية عبد الله الساهر

 رقم العضوية :  1
 تاريخ التسجيل :  22-07-2004
 المشاركات :  70,788
 الدولة :  ムレ3乃乇乇尺
 الجـنـس :  ذكر
 العمر :  38
 عدد النقاط :  243859
 قوة التقييم :  عبد الله الساهر تم تعطيل التقييم
 SMS :

حتى لو اجتهدت و قطعت فؤادك.. ووضعته للناس في طبق فضي ليرضوا عنك لن تفلح وربما لن تصل لمستوى يرضيك أنت عن نفسك فاجتهد ليكون الله وحده راضياً عنك وأغمض عينيك عن ما سواه

 اخر مواضيع » عبد الله الساهر
 تفاصيل مشاركات » عبد الله الساهر
 أوسمة و جوائز » عبد الله الساهر
 معلومات الاتصال بـ عبد الله الساهر

افتراضي


رائعه صمت الجمال



جدا درس رائع


شكرا لك جاري تطبيقه

توقيع :





رحمك الله يا أنس
وجعل الفردوس دارك ومستقرك



عبد الله الساهر غير متواجد حالياً
قديم 03-09-2006, 09:11 PM   #3
Has A Reputation Beyond Repute

الصورة الرمزية أحمد نسيب

 رقم العضوية :  220
 تاريخ التسجيل :  17-10-2005
 المشاركات :  4,029
 الجـنـس :  ذكر
 عدد النقاط :  50215
 قوة التقييم :  أحمد نسيب has much to be proud ofأحمد نسيب has much to be proud ofأحمد نسيب has much to be proud ofأحمد نسيب has much to be proud ofأحمد نسيب has much to be proud ofأحمد نسيب has much to be proud ofأحمد نسيب has much to be proud ofأحمد نسيب has much to be proud ofأحمد نسيب has much to be proud ofأحمد نسيب has much to be proud ofأحمد نسيب has much to be proud of
 اخر مواضيع » أحمد نسيب
 تفاصيل مشاركات » أحمد نسيب
 أوسمة و جوائز » أحمد نسيب
 معلومات الاتصال بـ أحمد نسيب

افتراضي


يسلموا النقل المفيد

وخاصة لأنه مهم لي لإأنا من هواة تعلم بناء قواعد البيانات

سلامي لك

توقيع :

سبحانك اللهم وبحمدَك

من يهتم بنفسه العليا يصبح رجلا عظيما، أما من يهتم بنفسه السفلي فيصبح رجل وضيعا.
منسيوس
فيلسوف صيني كونفوشيوسي قديم.

أحمد نسيب غير متواجد حالياً
قديم 04-09-2006, 03:57 PM   #4

الصورة الرمزية صمت الجمال

 رقم العضوية :  35
 تاريخ التسجيل :  06-09-2004
 المشاركات :  1,120
 العمر :  38
 عدد النقاط :  10
 قوة التقييم :  صمت الجمال is on a distinguished road
 اخر مواضيع » صمت الجمال
 تفاصيل مشاركات » صمت الجمال
 أوسمة و جوائز » صمت الجمال
 معلومات الاتصال بـ صمت الجمال

افتراضي


الاستاذين الرائعين


عبد الله الساهر - احمد نسيب


مامواضيعي دون فائدة بدون هالمرور الجميل

صمت الجمال غير متواجد حالياً
موضوع مغلق

مواقع النشر (المفضلة)


أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
ابي مساعدتكم بنماذج الأكسل ندوي استفسارات شهادة تقنية المعلومات CIT 15 22-02-2017 01:13 AM
مواعيد عمل المستشفيات ومراكز الرعاية في رمضان عبد الله الساهر مجلس أوراق ملونة 9 25-07-2013 07:37 AM
شرح عمل تقسيم للقوائم في سكربت dimofinf عبد الله الساهر شروحات واستفسارات ديموفنف Dimofinf 26 15-07-2013 07:21 AM
أكثر من 700 فرصة عمل للشباب السعودي في وكالات السفر والسياحة سمو الأميرهـ عبير مجلس أوراق ملونة 2 08-01-2013 11:52 PM
طرق رائعه للصدقه شوقي غلبني مجلس أوراق ملونة 8 14-10-2012 04:52 AM


الساعة الآن 11:02 PM


Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0 TranZ By Almuhajir
Ads Organizer 3.0.3 by Analytics - Distance Education
جميع الحقوق محفوظة لـ : منتديات العبير
المحتوى المنشور فى موقع العبير لايعبر بالضرورة عن وجهة نظر الإدارة وإنما يعبر عن وجهة نظر كاتبها