У меня есть приложение wpf, которое сохраняет элементы в файле SQL Server Compact Edition. Этот файл создается динамически из списка классов, составляющих контекст данных. Я испытываю медленное время загрузки, когда у меня есть следующий сценарий.Увеличьте скорость чтения компакт-дисков SQL
Попытки загрузить список Itema, который содержит список ItemB
В моем DataContext это ссылки на Table1, ссылка таблицу из Table1 до Table2 и Table2
Чтобы получить это в мое приложение I Загрузить Все строки таблицы 1 из Sql Server. Для каждой строки таблицы1 я добавляю любую информацию в новый ItemA. Затем я ищу любые строки Table2, которые ссылаются на текущую строку Table1 через таблицу ссылок. Для возвращаемых строк All Table2 я конвертирую их в список ItemB и добавляю их в ItemA.
В итоге я получаю список ItemA, каждый из которых содержит список ItemB. Проблема в том, что я делаю несколько вызовов в БД, и это увеличивает время загрузки, когда вы получаете несколько сотен элементов. Есть ли лучший способ сделать это без нескольких вызовов? Если это не лучший способ ускорить работу приложения? Должен ли я быть кешированием ItemA, если да, то что это лучший способ сделать это?
На основании ответов пока нет и того факта, что единственным способом ускорить приложение (1 минута времени загрузки до миллисекунд) является двоичная сериализация всех моих объектов на диск и обратно в память при загрузке, I Я думаю, что полностью отбросить SQL Server CE. Я хочу портировать это приложение на Windows 8 Metro в конце концов и, поскольку он не поддерживает sql ce, это кажется еще более убедительной причиной для этого. - Есть ли у кого-нибудь какие-либо советы о том, насколько большой может быть ваш сериализованный файл, прежде чем он станет неработоспособным или какие-либо другие причины, почему это плохая идея? – Oli