aryasoft2872
دوشنبه 10 بهمن 1390, 00:04 صبح
با سلام
مدتی قبل برنامه ای نوشتم برای ویندوز فون که پایگاهی با حدود 50000 لغت داره و برای جستجو کردن لغت از LINQ استفاده می کنم.ولی برنامه هنگام سرچ کردن سرعتش فوق العاده پایین میاد.خواستم ببینم اگر راهی داره ممنون میشم راهنمایی کنید.در زیر یکخورده ای درباره شیوه جستجو می گم تا شاید جایی از کارم مشکل داشته باشه.
دو تا لیست تحت عنوان ALLWords و QuryedWords تعریف می کنم و توی رویداد تغییر متن تکست باکس بررسی می کنم که اگر متن تکست باکس برابر باشه با متن قبلی تکست باکس + 1 حرف از داخل QuryedWords جستجو کن و نتایج رو بریز توی QuryedWords و سورس لیست نتایج رو بزار QuryedWords ولی اگر شرط برقرار نبود QuryedWords رو برابر بزار با AllWords و حالا جستجو رو مثل قبل انجام بده.
البته یک جستجویی کردم در مورد اندیس ها ولی ظاهرا اندیس ها برای دیکشنری کاربردی ندارن به دلیل زیر:
However, it is not useful for this query:
... WHERE "First Name" = 'John'
When you create a multiple-column index, you should put the most selective columns leftmost in the key. This makes the index more selective when matching several expressions.
در ضمن برای جستجو همونطور که توی عنوان تاپیک گفتم از SQL Compact Edition استفاده کردم ولی انگار بخشی برای نسخه Compact وجود نداره همینجا سوالم رو پرسیدم
مدتی قبل برنامه ای نوشتم برای ویندوز فون که پایگاهی با حدود 50000 لغت داره و برای جستجو کردن لغت از LINQ استفاده می کنم.ولی برنامه هنگام سرچ کردن سرعتش فوق العاده پایین میاد.خواستم ببینم اگر راهی داره ممنون میشم راهنمایی کنید.در زیر یکخورده ای درباره شیوه جستجو می گم تا شاید جایی از کارم مشکل داشته باشه.
دو تا لیست تحت عنوان ALLWords و QuryedWords تعریف می کنم و توی رویداد تغییر متن تکست باکس بررسی می کنم که اگر متن تکست باکس برابر باشه با متن قبلی تکست باکس + 1 حرف از داخل QuryedWords جستجو کن و نتایج رو بریز توی QuryedWords و سورس لیست نتایج رو بزار QuryedWords ولی اگر شرط برقرار نبود QuryedWords رو برابر بزار با AllWords و حالا جستجو رو مثل قبل انجام بده.
البته یک جستجویی کردم در مورد اندیس ها ولی ظاهرا اندیس ها برای دیکشنری کاربردی ندارن به دلیل زیر:
However, it is not useful for this query:
... WHERE "First Name" = 'John'
When you create a multiple-column index, you should put the most selective columns leftmost in the key. This makes the index more selective when matching several expressions.
در ضمن برای جستجو همونطور که توی عنوان تاپیک گفتم از SQL Compact Edition استفاده کردم ولی انگار بخشی برای نسخه Compact وجود نداره همینجا سوالم رو پرسیدم