Всем привет! Давно не заходил...учеба робота и тд.
Вообщем у меня есть проблема
Есть база данных (ms sql 2008) в ней таблица на 15 полей с информацией о ценах. с этих 15 полей где то 5 повторяемые поля... то есть можно было бы разбить на две таблицы... и связать ключом(не стал так делать что бы не навредить производительности(так как она очень важна))
БД связана з датасетом. каждые 5 секунд с 15 (в будущем будет примерно 45) разных веб-сервисов получаются данные..они обрабатываются и записываются в эту таблицу...за одну полную обработку всех веб-сервисов собирается более 1000 записей...причем эти записи уже есть в БД то есть их нужно только обновить. Примерно каждые 10 минут данные обновляются - уже совсем другие данные...
Проблема собственно в том что запись в бд происходит медленно. причем еще и форма подвивает.так как данные з датасета выводятся на форму. обновления данных в датасете делаю в главном потоке(что бы devexpress'овский контрол не глюкал). обновленния данных в датасет занимет где то полсекунды. а вот запись в бд(через dataset.update()) происходит медленно. Пишу с batch = 300. отключил все фичи типа оптимистической блокировки и прочей фигни....запись 1000 записей примерно ~1,5 сек.
это время бы меня устроило но вот когда я начинаю на форме смотреть таблицу тогда запись увеличивается очень круто до 10 секунд...
дополнительная инфа:
в гриде на вывод я делаю группирование по некоторым полям... сортировки и еще кучу чего интересного
данные пишуться(dataset.update) в потоке каждые две секунды
Вопрос: как бы все таки безболезненно отделить форму от записи в бд..и иметь самые свежие данные в гриде
Ответить
|