169 похожих чатов

А какого размера у вас базы данных? Датасеты придумали, когда

память у компов была считанные мегабайты и данные вычитывались по одной строке. Сейчас же можно тупо всю базу в память прочитать и фильтровать на лету. Я проверял на таблицах до миллиона строк - сотня миллисекунд на железе 20-летней давности

17 ответов

12 просмотров

Ну client-side курсоры примерно это и делают

Это не работает... Никакой памяти (особенно для 32 битного клиента) не хватит читать современные базы. Сеть и сервер умрут если 5 пользователей одновременно начнут читать на себя таблички с 200к строк с широкими колонками. И что насчет синхронизации изменений таблиц при многопользовательской работе? Каждые 20 сек перечитывать/перефильтровывать? 100мс - это сказки... работающие только на сферической базе в вакууме из трех таблиц с монопольным доступом

Sergey-Bodrov Автор вопроса

Ну так какого размера база? 10 гигов хотя бы наберется? Синхронизация делается проще простого - журнал событий вида (время, таблица, ключ), который можно рассылать, а можно читать по таймеру. А можно средствами СУБД получать уведомления об изменениях.

Sergey Bodrov
Ну так какого размера база? 10 гигов хотя бы набер...

Недельная база примерно 40 Гб. Но это неважно, мы ведь говорим о выкачивании на клиента всех записей одной таблицы? Самые большие таблицы 3..4 Гига + 3..6 Гб в блоб-полях. Замучаешься на клиента всасывать и фильтровать

Sergey-Bodrov Автор вопроса
Михаил Усков
Недельная база примерно 40 Гб. Но это неважно, мы ...

С такими размерами баз можно задуматься о долгосрочном кешировании данных на клиенте в виде отдельной справочной БД. Либо сразу веб/тонкого клиента делать.

Михаил Усков
Это не работает... Никакой памяти (особенно для 32...

С таблицами-справочниками, которые обновляются хорошо если раз в месяц, работает

Оно и тогда тормозило не по деццки.

Sergey Bodrov
Ну так какого размера база? 10 гигов хотя бы набер...

А можно просто принять за аксиому что то что видно на экране - априори устарело. Хочешь видеть самую актуальную версию - блокируй. Не смысла непрерывно рефрешить, тем или иным методом. Все что получено на клиента - по определению устарело.

Sergey-Bodrov Автор вопроса
Владимир Аксенов
А можно просто принять за аксиому что то что видно...

Железо позволяет в реальном времени смотреть онлайн видео высокого разрешения, отрисовывать целый виртуальный мир, имитировать мыслительные процессы человека. Но десяток килобайт из базы данных отображать в реальном времени никак нельзя, только блокировать или априори устарело. Я правильно понял? =)

Sergey Bodrov
Железо позволяет в реальном времени смотреть онлай...

А оно точно позволяет без задержки смотреть любой фильм, когда-либо снятый, с любой случайно выбранной секунды?

Sergey-Bodrov Автор вопроса

Ну и откуда взялся вывод про десяток килобайт? Откуда известна частота обновления данных в БД? Если одну запись поочередно хреначат 1 раз в секунду 50 клиентов, зачем человеку видеть как она меняется 50 раз в секунду? Он все равно не может это воспринять и адекватно отреагировать.

Sergey Bodrov
В ютубе именно так

Это неправда, в ютюбе страницы по несколько секунд открываются. А должны, по вашему, мгновенно начать трансляцию. Любой случайно выбранный ролик, с любой случайно выбранной секунды. ...ну и вопрос ещё запуска ютюьного сервера на ОДНОМ компьютере. Пусть даже самом дорогом мейнфрейме, но на одном.

Sergey-Bodrov Автор вопроса
Владимир Аксенов
Ну и откуда взялся вывод про десяток килобайт? Отк...

У меня события охранных и пожарных приборов со всего города валят на пульт непрерывно, их все надо обрабатывать. Нет событий больше минуты - тревога. Событие из списка тревожных - тревога. Событие не тревожное, но меняет статус на тревожный (преждевременное снятие с охраны, например) - тревога. И нельзя терять ни одного события. Даже если сервер сломается или его отключат на время, нужно все сохранять и после восстановления показать. И это несложно делается, тупо генерим SQL INSERT с синтетическим ключом и пишем в файл (на флешку, в сеть, куда угодно) как лог. А оттуда данные в сервер или еще куда читаем по возможности и показываем пользователю. В таком случае все работает даже без БД, она как архив и для отчетов.

Sergey Bodrov
У меня события охранных и пожарных приборов со все...

И что, есть реальная разница в частоте рефреша событий - 60 раз в секунду или раз в 1 секунду? Ну и кроме того, у вас задача другая - отслеживать все события. А к примеру, зачем отслеживать изменения в документах которые ты видишь, но не ты делал и не ты правишь? Ну поменялось, будешь смотреть движение товара по документу или статус документа, если актуально - то увидишь. Не будешь смотреть - так и не надо.

Sergey-Bodrov Автор вопроса
Владимир Аксенов
И что, есть реальная разница в частоте рефреша соб...

Там 500 мс рефреш (2 раза в секунду), вполне достаточно. В режиме отладки 10 раз в секунду.

Владимир Аксенов
И что, есть реальная разница в частоте рефреша соб...

Забавно. Пришлось делать отчёты по существующей чужой программе, которая работает с датчиками ну и со своей базой. Навесила триггер на таблицу событий, чтобы добавлялось в мою. Вроде тормозов нет

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
всем вопрос. есть функция, которая иногда в линуксе валится с исключением EConvertError Invalid argument to date encode на строке Result:=LocalToUtcDateTime(FileDateToDateTime...
Handatros
9
И из-за этого сужается карман. Нет свободного полёта. Они либо могут какой-то заточенный прикладной софт, либо какой-то простой системный написать. По шаблону. А, допустим, по...
КТ315
9
Всем привет! Подскажите, как решить проблему или из-за чего это происходит. У меня есть проблема в WebStorm (v.2024.1.3): я ставлю любую тему, и через какое-то время меняется ...
Alexander Sheigov
12
А с каким компилятором не будет ошибкой использовать асм вставки?
Replicant ~
14
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Народ, кто шарит в расширенных разделах (EBR/EPR) на дисках с разметками MBR? Везде пишут (в вики рус/англ) в частности + другие источники смотрел, что первый сектор расширенн...
Eugene Krasnikov (ᴊɪɴ x)
1
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Карта сайта