برمجةتلميحاتقواعد البيانات

DB/Backend Dev نصائح لمطورين قواعد البيانات

شوية معلومات عن ماهيّة التعامل مع قواعد البيانات، الشغلة الي حقها ضايع، لازم تاخذ بعين الإعتبار انه طريقتك لكتابة الكويري بتأثر بالآداء بشكل كبير، يعني عادي جدًا انا اكتب كويري وغيري يكتب كويري بنفس الريزلت بس اسرع بـ20 مرة من الكويري الي كتبتها

 

لهيك خلينا نوّضح سوا شوية أمور مهمّة جدًا ورح تفرق باداء السوفتوير الي بتبني فيه:
• حاول قدر الإمكان ما تستخدم select * كونها بتعمل لود عالي بالـI/O وعالتيبل والباندويث تبع الشبكة.

• سيبك من الـSELECT الي بتحكي فيها جيب الكولم هاي مع عشيرتها،
اعمل سيلكت للي محتاجه فقط، ما تجيب كل اشي عشان تستخدم شغلة ولا شغلتين.

• دائمًا خلي مساحة فاضية بالداتابيس من 20 – 35%، لان احتمال كبير يأثر باسترجاعك للبيانات.

• حاول استخدام الcolumns الي عامللها indexes بجمل الـ Where و الـ Join واستخدمهم بنفس ترتيب ظهورهم بالindexes.

• منعرف انه الـ SQL Server ومعظم لغات الداتابيس هي case insensitive يعني الـSELECT هي الselect، سو حاول ما تضيع وقتك وانت بتتفنن بحجم الأحرف، اكتب كما هو العرف بين الديفلوبرز بعمل الـ Keywords كابيتال حتى يكون شكلها لطيف ومفهوم بشكل سريع.

• استخدام الـ Operators بتأثر جدًا ع الـ Performance، سو الـ=(يساوي) اسرع من < (اكبر من) اسرع من =< (اكبر من او يساوي)

• اذا مستخدم الـindex ولقيت بطئ بكويري ما لانها ما بتستخدم هذا الـindex، ممكن تستخدمها بعد اسم ال Table بهالشكل:

SELECT col1,col2
FROM Table WITH(INDEX(Index_Name))

• الـ EXISTS و الـ NOT EXISTS ادائها افضل جدًا من اداء الـIN والـ NOT IN.
•الـ BETWEEN كاداء افضل من الـIN .. يعني حاول ما تستخدم الـ IN.

•ما تستخدم اي عمليات في الـ Where ما الها لازمة .. يعني لو عندك مثلا condition
2 + 3 > 7
الاحسن انك تكتب الـ condition بهالشكل
5 > 7

• اداء الـ LIKE افضل لما يكون الـ WILD CARDS على يمين الـ VARCHAR .. يعني مثلا:

WHERE COUNTRY LIKE (‘JORDAN%’)

• اذا عندك compound conditions واستخدمت بينهم AND مثلا، وفي حال ان اي condition منهم كان بـ false فبالتالي المحصلة false.. فاذا متأكد انه في condition معين بكون اغلب الوقت بـ false .. فالمفترض انك تحطه كأول condition علشان تقصر رحلة البحث و تقليل حجم الـ conditions اللي الـ query حيفحصها.

• اذا عندك condition من مجموعة conditions بينهم OR .. في حالة انه في condition متوقع انه يكون true.. استخدمه كأول condition.

•لما تعمل index لـ table .. اختار الـ columns اللي رح تستخدمها كثير في جمل الـ WHERE و الـ JOIN.

• اذا بدك تحذف كل الداتا بجدول ما، استخدم TRUNCATE بدل الـ DELETE.

•ما تقلق انك تعمل non-clusterized indexes على tables كثير .. بس استخدمها بحيث ما توقع بمشكلة الـ overindexing .. لان الـ insertion هون رح تبطئ جدًا.

مقالات ذات صلة

زر الذهاب إلى الأعلى