كم أداء قاعدة البيانات النفقات العامة عند استخدام LINQ?

StackOverflow https://stackoverflow.com/questions/4782

سؤال

كم أداء قاعدة البيانات العامة تشارك باستخدام 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 ربما لا يكون كبيرا في أداء قاعدة البيانات النفقات العامة مع الإصدارات الأحدث إذا كنت قادرا على استخدام جمعت حدد ، وأبطأ وظائف تحديث المرجح أن تكون أسرع إلا إذا كان لديك حقا حادة الخبراء تفعل معظم الترميز.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top