تحسين استعلام DB4O LINQ
-
20-09-2019 - |
سؤال
لقد واجهت مشكلة في استعلام LINQ هذا:
from PersistedFileInfo fi in m_Database
from PersistedCommit commit in m_Database
where commit.FileIDs.Contains( fi.ID )
where fi.Path == <given path>
select new Commit( m_Storage, commit );
كما ترون ، كل PersistedCommit
يحتوي على Collection<int>
اتصل FileIDs
الذي يربطه به PersistedFileInfo
س. أرغب في تحديد جميع الالتزامات السابقة من ملف fileInfo محدد (والذي تم تحديده بواسطة مساره).
لدي حوالي 800 PersistedFileInfo
S و 10 PersistedCommit
س. يستغرق الاستعلام حوالي 1.5 ثانية - وهو في أوفي لفترة طويلة جدًا. محام Commit
- Object يحفظ فقط الحجج المعطاة - لذلك لا يوجد timeloss ، هنا.
سؤالي:
هل يمكن إعادة كتابة هذا الاستعلام لأداء أفضل - أم أنه مشكلة DB4O (استخدم استعلام الصودا بدلاً من ذلك)؟
المحلول
يرجى التحقق مما إذا كان NQ الخاص بك قد تم تحسينه بالفعل (انظر هنا). إذا لم يكن الأمر كذلك ، فإن أفضل رهان لك هو ترجمة هذا إلى استعلام الصودا بنفسك.
غوران
لا تنتمي إلى StackOverflow