WP7 Sterling очень медленно хранит много данных - PullRequest
1 голос
/ 18 апреля 2011

Я пытаюсь хранить 46 000 объектов в Стерлинге, и это занимает 3 минуты.

Да, я знаю, что это много, но это данные, предоставленные клиентом, и в итоге они могут быть намного больше.

Я предполагаю, что каждый раз, когда я сохраняю новый объект, он ищет ключ, чтобы увидеть, был ли объект уже сохранен.

Есть ли способ обойти это и сказать стерлингу просто вставить?

Есть еще идеи?

Ответы [ 2 ]

1 голос
/ 18 апреля 2011

Не зная ничего о вашей структуре данных, довольно сложно порекомендовать способы, которыми вы могли бы улучшить производительность, однако:

  • Чем меньше индексов вы создаете для своих таблиц данных, тем меньше индексов нужно создавать, когда ваши данные сохраняются. Вы должны внимательно посмотреть, какие индексы вам нужны для сценариев чтения данных.
  • Чем больше связей данных, тем больше метаданных нужно создавать во время записи. Вы можете упростить структуры данных и объединить классы.
  • Огромный объем данных звучит как ваша самая большая проблема. Ранее я сталкивался с подобными проблемами при попытке сохранить большие объемы данных GPS. Проблема в том, что я пытался записать много сравнительно небольших объемов данных, связанных с одним фрагментом данных в другой таблице. Мне удалось решить эту проблему, объединив данные GPS в одну строку и сохранив ее в виде поля с основной записью. Это вывело много времени чтения / записи в значительно меньшее количество времени для повторной обработки данных, когда они действительно были необходимы.

Я определенно рекомендую связаться с Джереми и командой Стерлинга через сайт CodePlex , если ничего из вышеперечисленного не поможет.

0 голосов
/ 18 апреля 2011

Рассматривали ли вы сохранение большей части данных на стороне сервера и предоставление клиенту только окна для этих данных, что-то вроде 20 или 50 строк одновременно?

РЕДАКТИРОВАТЬ: так как ответа нет, я бы отключил индекс таблицы базы данных во время операции или использовал бы массовое копирование SQL.

...