The Fix For Your Database Performance Issues in .NET
Summary
TLDRفي هذا الفيديو، يشرح نيك كيفية تحسين أداء قواعد البيانات في .NET باستخدام طريقة مبتكرة وسهلة التنفيذ. من خلال استخدام حزمة Delta، يمكن تحسين استجابة API بشكل كبير عبر تطبيق آلية التخزين المؤقت باستخدام تقنيات مثل e-tags و304. هذا الحل لا يتطلب تغييرات كبيرة في الكود، فقط تعديل بسيط في قاعدة البيانات باستخدام عمود 'Row Version' لتمكين التحقق من التعديلات وتخزين النتائج بشكل فعال. يتم تعزيز الأداء بشكل ملحوظ، خاصة في السيناريوهات التي تتطلب استعلامات قراءة ثقيلة. كما يوصي نيك باستخدام هذه الحزمة للمشاريع التي تتطلب تحسينات في الأداء.
Takeaways
- 😀 يمكن تحسين أداء استعلامات قاعدة البيانات في .NET باستخدام حزمة Delta بشكل بسيط وغير تدخلي.
- 😀 تتطلب الحزمة إضافة عمود 'RowVersion' إلى قاعدة البيانات لتفعيل التخزين المؤقت للبيانات.
- 😀 التخزين المؤقت يتم على مستوى المتصفح باستخدام آلية ETag و304 Not Modified لتقليل الحمل على الخادم.
- 😀 مع Delta، يمكن تحسين أداء الاستعلامات بشكل كبير حتى في وجود ملايين السجلات في قاعدة البيانات.
- 😀 يمكن تطبيق Delta على مستوى API ككل أو على مجموعة معينة من النقاط في الواجهة.
- 😀 بمجرد تكامل Delta مع النظام، يتحقق من وجود تغييرات في البيانات باستخدام 'RowVersion' ويعرض فقط البيانات المعدلة.
- 😀 يمكن تحسين الاستعلامات البطيئة مثل البحث الجزئي عن اسم المستخدم وجعلها أكثر كفاءة.
- 😀 بعد أول طلب، يتم تخزين البيانات في ذاكرة التخزين المؤقت للمتصفح مما يقلل من أوقات الاستجابة بشكل ملحوظ.
- 😀 يمكن تخصيص سلوك Delta بحيث يعمل فقط مع نقاط نهاية معينة أو بناءً على شروط معينة مثل وجود كلمات في المسار.
- 😀 Delta يعمل بشكل جيد مع EF Core ويوفر بديلاً فعالًا لأداء استعلامات معقدة في التطبيقات الكبيرة.
Q & A
ما هو الهدف من استخدام حزمة Delta في هذا الفيديو؟
-الهدف من استخدام حزمة Delta هو تحسين أداء استعلامات قاعدة البيانات من خلال استخدام التخزين المؤقت على مستوى المتصفح باستخدام ETags وآلية 304 لتقليل الزمن المستغرق في استرجاع البيانات من قاعدة البيانات.
كيف يعمل التخزين المؤقت باستخدام Delta؟
-يعمل التخزين المؤقت باستخدام Delta عن طريق إضافة عمود RowVersion إلى قاعدة البيانات. هذا العمود يحتوي على قيمة متزايدة تلقائيًا تتغير عند تعديل البيانات. يتم استخدام هذه القيمة للتحقق من ما إذا كانت البيانات قد تغيرت، مما يسمح للمتصفح بالتحقق من تحديث البيانات عبر ETag وآلية 304.
ما هي الميزة الأساسية لإضافة عمود RowVersion في قاعدة البيانات؟
-الميزة الأساسية لعمود RowVersion هي أنه يعمل كآلية تحقق لتحديد ما إذا كانت البيانات قد تم تعديلها أم لا. إذا لم تتغير البيانات، يمكن للمتصفح استخدام البيانات المخزنة مؤقتًا، مما يقلل من عدد الاستعلامات إلى قاعدة البيانات ويحسن الأداء.
كيف يتم تحسين الأداء في السيناريوهات التي تحتوي على استعلامات غير فعالة؟
-في السيناريوهات التي تحتوي على استعلامات غير فعالة، تقوم حزمة Delta بالتحقق من عمود RowVersion وتحديد ما إذا كانت البيانات قد تغيرت. إذا كانت البيانات قد تغيرت، يتم استرجاع البيانات الفعلية من الخادم. أما إذا لم تتغير البيانات، يتم استرجاع البيانات المخزنة مؤقتًا باستخدام ETag وآلية 304.
ماذا يحدث عندما يتم تعديل البيانات في قاعدة البيانات؟
-عند تعديل البيانات في قاعدة البيانات، يتم تحديث قيمة عمود RowVersion، مما يسبب فشل تطابق ETag مع البيانات المخزنة في المتصفح. عندئذٍ، يقوم المتصفح بإجراء طلب جديد لاسترجاع البيانات المحدثة.
هل يتطلب استخدام Delta أي تعديلات في الكود الأساسي؟
-لا، لا يتطلب استخدام Delta تعديلات كبيرة في الكود الأساسي. يمكن إضافة الحزمة ببساطة وتفعيلها في مستوى التطبيق أو لمجموعة معينة من النقاط النهائية دون الحاجة إلى تعديل الكود الرئيسي.
ما هي طريقة التخصيص المتاحة في Delta لتحسين الأداء؟
-يمكن تخصيص طريقة تطبيق Delta باستخدام الطريقة `should execute` التي تتيح تحديد النقاط النهائية التي ترغب في تطبيق التخزين المؤقت عليها. يمكن تحديد شروط خاصة مثل تضمين مسار معين في الطلب لتطبيق آلية التخزين المؤقت فقط على الاستعلامات المعنية.
كيف يتم استخدام آلية ETag وآلية 304 لتحسين الأداء؟
-تعمل آلية ETag وآلية 304 على مستوى المتصفح للتأكد من أن البيانات لم تتغير. عندما يتم إرسال طلب للبيانات، يقوم الخادم بإرجاع ETag يحدد نسخة البيانات. إذا كانت النسخة المخزنة في المتصفح لا تزال صالحة، يقوم المتصفح باستخدام البيانات المخزنة مؤقتًا بدلاً من إجراء طلب جديد إلى الخادم.
هل يمكن استخدام Delta مع أي قاعدة بيانات؟
-نعم، يمكن استخدام Delta مع أي قاعدة بيانات تدعم SQL، ولكن في الفيديو يتم استخدام SQL Server كقاعدة بيانات نموذجية. الحزمة تعتمد على التحقق من تغييرات البيانات باستخدام عمود RowVersion، الذي يجب أن يكون مدعومًا من قبل قاعدة البيانات.
ما هي الأدوات أو الحزم الأخرى التي تم ذكرها في الفيديو وتساعد في تحسين الأداء؟
-تم ذكر حزمة 'Replicant' في الفيديو، وهي عبارة عن واجهة HTTP Client تقوم بتطبيق نفس منطق التخزين المؤقت الذي تستخدمه Delta على جانب العميل، مما يسمح بتخزين البيانات مؤقتًا في استعلامات HTTP خارج المتصفح.
Outlines

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.
Mejorar ahoraMindmap

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.
Mejorar ahoraKeywords

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.
Mejorar ahoraHighlights

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.
Mejorar ahoraTranscripts

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.
Mejorar ahoraVer Más Videos Relacionados

Zero-shot Prompting Explained

Frontend Performance - #1 Introduction بالعربي

Tree data structures in 2 minutes 🌳

Base de donnée : Introduction

How to Estimate Market Size for a New Product

How To Use FireEye RedLine For Incident Response P1 | TryHackMe RedLine

Disable Telemetry | Services, Registry, Tasks & Group Policy
5.0 / 5 (0 votes)