тормоза с where
От: sjrk  
Дата: 24.06.11 06:21
Оценка:
Пишу один небольшой проект. Для себя. Использую sqllite и bltoolkit.
Запрос
var dbresult = (from p in p4DB.Accounts
where p.accType == 1
orderby p.accOrd
select p);

dbresult.ToList() — первый раз выполняется около 3 секунд. Следующие обращения мгновенно.
Без условия where p.accType == 1 меньше секунды.
Сам sql выполняется 0,001... секунды.
Может кто сталкивался и может подсказать как побороть тормоза? . Как вариант можно писать sql запрос руками, но как тоне кошерно ...
Re: тормоза с where
От: Jack128  
Дата: 24.06.11 06:25
Оценка:
Здравствуйте, sjrk, Вы писали:

S>Пишу один небольшой проект. Для себя. Использую sqllite и bltoolkit.

S>Запрос
S>var dbresult = (from p in p4DB.Accounts
S> where p.accType == 1
S> orderby p.accOrd
S> select p);

S>dbresult.ToList() — первый раз выполняется около 3 секунд. Следующие обращения мгновенно.

S>Без условия where p.accType == 1 меньше секунды.
S>Сам sql выполняется 0,001... секунды.
S>Может кто сталкивался и может подсказать как побороть тормоза? . Как вариант можно писать sql запрос руками, но как тоне кошерно ...

а ты попробуй таки руками sql написать. Что то мне кажется, тут не в BLToolkit дело, а в СУБД/запросе, и голый скл столько же времени будет выполняться..
Re[2]: тормоза с where
От: sjrk  
Дата: 24.06.11 06:30
Оценка:
Здравствуйте, Jack128, Вы писали:

J>а ты попробуй таки руками sql написать. Что то мне кажется, тут не в BLToolkit дело, а в СУБД/запросе, и голый скл столько же времени будет выполняться..

нееее сам sql выполняется очень быстро ... на работе проект на оракле условия where намного страшее и работает на ура. а sqllite вот такие тормоза почему то ...
Re: тормоза с where
От: fddima  
Дата: 24.06.11 07:31
Оценка:
Здравствуйте, sjrk, Вы писали:

S>dbresult.ToList() — первый раз выполняется около 3 секунд. Следующие обращения мгновенно.

S>Без условия where p.accType == 1 меньше секунды.
S>Сам sql выполняется 0,001... секунды.
Это JIT компилирует код.
Есть 2 основные техники уменьшить время холодного старта:
1) Использовать NGEN.
2) Если это возможно (а иногда только это и возможно) — использовать warm-up — т.е. просто пускать "разогревающий" код — в твоём случае это например выполнить этот самый селект. Время это не сократит, но это можно выполнить либо в фоне, либо на старте программы — и когда нужно будет нормальное взаимодействие с пользователем — всё уже будет готово.
Для клиентских/локальных приложений я всегда выбираю ngen, но надо помнить, что для ngen-а не все оптимизации доступны которые может сделать jit — хотя я таких ситуаций не встречал.
Re[2]: тормоза с where
От: sjrk  
Дата: 24.06.11 07:49
Оценка:
Здравствуйте, fddima, Вы писали:

F> Это JIT компилирует код.

F> Есть 2 основные техники уменьшить время холодного старта:
F> 1) Использовать NGEN.
F> 2) Если это возможно (а иногда только это и возможно) — использовать warm-up — т.е. просто пускать "разогревающий" код — в твоём случае это например выполнить этот самый селект. Время это не сократит, но это можно выполнить либо в фоне, либо на старте программы — и когда нужно будет нормальное взаимодействие с пользователем — всё уже будет готово.
F> Для клиентских/локальных приложений я всегда выбираю ngen, но надо помнить, что для ngen-а не все оптимизации доступны которые может сделать jit — хотя я таких ситуаций не встречал.

fddima, спасибо!
Про второй вариант я уже думал.
Можно немного подробнее про первый вариант? Просто с c# я работаю пару месяцев , а с bltoolkit и того меньше. Проект пишу, точнее переписываю для себя, и заодно пытаюсь разобраться.
Re[3]: тормоза с where
От: fddima  
Дата: 24.06.11 09:05
Оценка:
Здравствуйте, sjrk, Вы писали:

S>Про второй вариант я уже думал.

S>Можно немного подробнее про первый вариант? Просто с c# я работаю пару месяцев , а с bltoolkit и того меньше. Проект пишу, точнее переписываю для себя, и заодно пытаюсь разобраться.
Это утилита рантайма, ngen.exe — native image generator.
Re[4]: тормоза с where
От: sjrk  
Дата: 24.06.11 09:16
Оценка:
Здравствуйте, fddima, Вы писали:

F> Это утилита рантайма, ngen.exe — native image generator.


fddima БОЛЬШОЕ СПАСИБО!
Нашел еще несколько ссылок, например [url=http://www.rsdn.ru/forum/prj.rfd/4060314.flat.aspx
Автор: iGrog
Дата: 01.12.10
]. Думаю дальше разберусь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.