كم أداء قاعدة البيانات النفقات العامة عند استخدام LINQ?
-
08-06-2019 - |
سؤال
كم أداء قاعدة البيانات العامة تشارك باستخدام C# و LINQ مقارنة مخصص الأمثل الاستفسارات محملة في الغالب على مستوى منخفض ج ، سواء مع SQL Server 2008 الخلفية ؟
أنا على وجه التحديد أفكر هنا في حالة حيث لديك إلى حد ما كثيفة البيانات البرنامج سوف يقوم بعمل تحديث البيانات أو تحديث على الأقل مرة واحدة في الشاشة وسوف يكون 50-100 المستخدمين في وقت واحد.
المحلول
في تجربتي النفقات العامة هو الحد الأدنى ، شريطة أن يكون الشخص كتابة الاستفسارات يعرف ماذا كان يفعل ، واتخاذ الاحتياطات المعتادة لضمان إنشاء الاستعلامات هي الأمثل ، أن من الضروري الفهارس في مكان إلخ إلخ.وبعبارة أخرى ، فإن قاعدة البيانات ينبغي أن يكون الأثر نفسه ؛ هناك الحد الأدنى ولكن عادة لا تذكر النفقات العامة على الجانب التطبيق.
إلى أن قال...هناك استثناء واحد على هذا ؛ إذا كان استعلام واحد يولد متعددة المجاميع L2S مزود يترجم ذلك إلى حد كبير الاستعلام مع واحد الفرعية الاستعلام في مجموع المباراتين.على طاولة كبيرة وهذا يمكن أن يكون كبيرا I/O تأثير مثل db I/O تكلفة الاستعلام ينمو المقادير لكل جديد الكلي في الاستعلام.
الحل لذلك هو بالطبع إلى تحريك المجاميع إلى تخزين مجلد أو عرض.مات وارن بعض التعليمات البرمجية عن بديل الاستعلام موفر ترجمة هذا النوع من الاستفسارات بطريقة أكثر كفاءة.
الموارد:
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=334211
http://blogs.msdn.com/mattwar/archive/2008/07/08/linq-building-an-iqueryable-provider-part-x.aspx
نصائح أخرى
شكرا ستو.خلاصة القول يبدو أن LINQ to SQL ربما لا يكون كبيرا في أداء قاعدة البيانات النفقات العامة مع الإصدارات الأحدث إذا كنت قادرا على استخدام جمعت حدد ، وأبطأ وظائف تحديث المرجح أن تكون أسرع إلا إذا كان لديك حقا حادة الخبراء تفعل معظم الترميز.