سؤال

ولدي سؤال لمن لديه خبرة في i4o أو PLINQ. لدي مجموعة كائن كبير (حوالي 400K) اللازمة للاستعلام. منطق بسيط جدا ومباشر. على سبيل المثال، لديها هناك مجموعة من الكائنات شخص، ولست بحاجة للعثور على الأشخاص المتطابقة مع نفس الاسم الأول، اسم العائلة، datebirth، أو الأولي الأول من الاسم الأول / اللقب، وما إلى ذلك هي مجرد عملية تستغرق وقتا طويلا باستخدام LINQ إلى كائن.

وأنا أتساءل عما اذا كان i4o (http://www.codeplex.com/i4o )

وأو PLINQ يمكن أن تساعد على تحسين أداء الاستعلام. أيهما أفضل؟ وإذا كان هناك لديه أي نهج هناك.

وشكرا!

هل كانت مفيدة؟

المحلول

ومع 400K الأشياء، وأنا أتساءل ما إذا كان قاعدة بيانات (إما في عملية أو الخروج من عملية) لا يمكن أن يكون الجواب أكثر ملاءمة. هذا ثم خلاصات عملية إنشاء فهرس. على وجه الخصوص، فإن أي قاعدة بيانات تدعم مؤشرات مختلفة متعددة على عمود مختلف (الصورة)، مما يجعل الاستعلامات ونقلت جميع محتمل جدا دون الحاجة إلى رمز خصيصا لكل (مجرد السماح للقلق محسن الاستعلام عن ذلك).

والعمل معها في الذاكرة قد تكون صالحة، ولكن قد (مع الفانيليا .NET) يجب أن نفعل أكثر من ذلك بكثير اليدوية إدارة الفهرس. بأصوات ذلك، فإن i4o سيكون بالتأكيد يستحق التحقيق، ولكن ليس لدي أي بيانات مقارنة القائمة.

نصائح أخرى

وi4o: يهدف إلى تسريع quering استخدام LINQ باستخدام مؤشرات مثل أيام قواعد البيانات العلائقية القديمة.

وPLINQ: من المفترض أن استخدام النوى وحدة المعالجة المركزية اضافية لمعالجة الاستعلام بالتوازي

وإذا كان الأداء التي تستهدفها، اعتمادا على الجهاز، وأنا أقول يذهب مع i4o أنه سيجعل من الجحيم التحسن.

وأنا لم تستخدم i4o لكن لقد استخدمت PLINQ.

ودون معرفة تفاصيل الاستعلام كنت تحاول تحسينه من الصعب القول الذي (إن وجدت) ومساعدة.

وPLINQ يسمح للالمعالجة المتعددة من الاستفسارات، حيث انها قابلة للتطبيق. هناك وقت ولكن عندما والمعالجة المتوازية لا تساعد.

وi4o يبدو أنه يساعد على فهرسة، والتي سوف تسرع بعض المكالمات، ولكن ليس غيرها.

وخلاصة القول، ان ذلك يعتمد على تدار الاستعلام.

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