Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163

Масштабируемость gps измерений

01.04.2019, 10:22. Показов 1899. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые Гуру!
Есть задача прием gps - измерений с порядка 300 машин. За месяц размер базы составил примерно 15 млн записей.
Использую БД MySQL Сейчас стали возникать проблемы , которых раньше не было - ошибка Out of memory и неприемлемые задержки по времени выборки данных.
Система должна обеспечивать выборку данных по требуемой группе машин за выбранный промежуток времени.
Может кто подскажет какой размер БД является критическим для MySQL и как масштабировать базу ?
Пока первое что пришло в голову - держать в отдельном архиве скажем месячный набор данных и при необходимости подгружать данные за период из архива.
Чтобы не вылетала ошибка Out of memory - делаю using на каждый запрос измерений, и записываю в словарь машина - набор координат , пока так.

Спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.04.2019, 10:22
Ответы с готовыми решениями:

Убрать диалог о включении GPS и иконку GPS. Тихий запуск GPS
Здравствуйте! Подскажите есть ли возможность включить GPS в тихом режиме, чтобы пользователь не догадался об этом! На данном...

В чем разница между БП Chieftec GPS-400AA-101 A и GPS-400A ?
В марте закончилась гарантия. И вот сдох блок питания (1). Мне впарили второй (2). Говорят нет разницы, но если я не ошибаюсь, разница от 5...

GPS навигатор на планшет windows 8.1 с модулем GPS (DIGMA EVE 8.0)
Здравствуйте. Всех с наступившим годом и рождеством! Прошу помощи, есть планшет с GPS (DIGMA EVE 8.0) - 2015 года выпуска, ищу...

5
Эксперт .NET
 Аватар для Usaga
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,439
01.04.2019, 10:27
Лучший ответ Сообщение было отмечено АТерентьев как решение

Решение

АТерентьев, MySQL - СУБД промышленного уровня. Она умеет в базы данных размерами в десятки терабайт. Ей ваши пятнадцать миллионов записей - как семечки - ниочём.

Out of memory - результат ваших неоптимальных манипуляций с базой. Ваш прошлый пост показал, что вы очень слабо понимаете работу EF'а, что приводит к выгребанию огромного количества данных.

Начните с того, что сверяйте показания профилировщика с тем, что вы ожидаете от вашего C#-кода формирующего запрос.

Поверьте, вы очень сильно удивитесь, когда посмотрите, что и в каких количествах вы выгребаете из базы.

Так же, не забывайте, что в природе существуют индексы.
1
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
01.04.2019, 10:58  [ТС]
Со всем согласен, конечно.
Удивило немного следующее.
Измерения являются подчиненным набором в объекте "Механизм".
Мне казалось

C#
1
Механизм.измерения
должно обеспечивать только выборку подчиненных записей для данного механизма. Если подчиненных записей
порядка 100 тысяч, выборка уже занимает 3-4 секунды. Была надежда что ограничение на выборку последних 1000 записей
, из которых можно выбрать нужные за период, ускорит дело. Если период мал - то выбрать следующие 1000 подзаписей и т.д. Но этого не произошло. Возможные причины вы описали.
Буду смотреть EF , спасибо за совет
0
Эксперт .NET
 Аватар для Usaga
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,439
01.04.2019, 11:04
Цитата Сообщение от АТерентьев Посмотреть сообщение
Была надежда что ограничение на выборку последних 1000 записей
, из которых можно выбрать нужные за период, ускорит дело. Если период мал - то выбрать следующие 1000 подзаписей и т.д.
Это костыль. Верное решение я вам привёл в теме по ссылке. Там я показал, как отдельным запросом выдернуть подчинённые записи и затолкать их в основной объект. На этот запрос можно наложить фильтр по дате.

Но у меня есть подозрения, что в коде у вас всё до такой степени плохо, что даже это может не помочь, ибо тормоза везде и всюду.

Проштудируйте этот мануал.
1
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
01.04.2019, 11:29  [ТС]
Мануалом займусь.
Думаю насколько безопасно в .edmx сделать
C#
1
LazyLoadingEnabled = false;
для других частей программы.
0
Эксперт .NET
 Аватар для Usaga
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,439
01.04.2019, 11:34
Лучший ответ Сообщение было отмечено АТерентьев как решение

Решение

АТерентьев, очень хорошей практикой является вообще отказ от Lazy Loading и замена на явную загрузку данных.

Ещё нужно повыкидывать virtual из определения навигационных свойств в моделях. Почти наверняка это сломает что-то в коде, если у вас активно использовалась ленивая загрузка. Придётся проходить по коду и приводить всё в порядок.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.04.2019, 11:34
Помогаю со студенческими работами здесь

Подключение GPS модуля Grove-GPS к Arduino UNO
Подсоединил Grove-GPS к Arduino UNO. Вот код программы: #include <SoftwareSerial.h> #include <TinyGPS.h> /* This sample code...

Отличия GPS-350FB-101A и GPS-350A
хочу купить бп Chieftec остановился на 2 моделях GPS-350FB-101A и GPS-350A по характеристикам вродь одинаковы но цена отличается на 4$...

Масштабируемость
Добрый день,необходим задать определенную ширину и высоту,и чтобы изображение,напирмер,при 20 x 20 имело 20 строчек в ширину и 20 в высоту...

масштабируемость
помогите пожалуйста как сделать маштабируемость графика нужно срочно

Масштабируемость шрифтов
Посоветуйте пожалуйста источник для изучения шрифтов, в котором детально на примерах описывается масштабируемость и кроссбраузерность...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 05.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 03.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru