
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
23.02.2020, 11:56
|
|||
|---|---|---|---|
Актуальные данные с базы |
|||
|
#18+
Добрый день, Подскажите пожалуйста. Delphi+Firebird В базе есть ряд параметров которые добавляются/обновляются очень редко, например валюты единицы измерения итд. Эти параметры я из базы загружаю при логине пользователя в программу и если надо использовать эти записи я их дергаю локально.Они добавляются/обновляются настолько редко что для пользователей несоставляет труда перелогинится в программу при их изменениях. Есть например таблица клиентов и она октивно меняеться , есть способ на клиентах держать актуальный список записей с таблицы а не ходить каждый раз за ними в базу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2020, 12:09
|
|||
|---|---|---|---|
Актуальные данные с базы |
|||
|
#18+
Точно также, разместить в памяти... Только каждый раз на изменения клиентов, отправлять событие на инвалидацию кеша. При следующем обращении в кеш, смотрите, что кеш не валиден и перечитываете то что нужно из базы и обновляете попутно кеш... Еще обязательно надо добавить время жизни данных в кеше... У вас каждое обращение в БД настолько замедляет работу, что вам необходим оверхед с кешем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2020, 12:46
|
|||
|---|---|---|---|
Актуальные данные с базы |
|||
|
#18+
X-Cite, Я бы не сказала что критичесски замедляет. А как Вы отправляете событие на инвалидацию кеша на клиенты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2020, 12:52
|
|||
|---|---|---|---|
Актуальные данные с базы |
|||
|
#18+
Используй массив записей - array of record ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2020, 12:53
|
|||
|---|---|---|---|
Актуальные данные с базы |
|||
|
#18+
Ещё вариант - использовать что-то вроде TMemoryDataSet ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2020, 13:45
|
|||
|---|---|---|---|
|
|||
Актуальные данные с базы |
|||
|
#18+
SashauaЯ бы не сказала что критичесски замедляет. Значит надо оптимизировать то, что тормозит, а не то, что в голову взбредёт. Только не говорите, что у вас выкачивается вся таблица клиентов полностью и потом она локально фильтруется... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2020, 14:02
|
|||
|---|---|---|---|
Актуальные данные с базы |
|||
|
#18+
Sashaua, Кэширование на клиенте - если на сервере толпа народу, или сервер совсем дохлый и не справляется, или сеть всё ещё на коаксиале. Если ничего этого нет, то и не стоит заморачиваться, больше ошибок наделаете. Ради интереса, посмотрите, сколько компоненты доступа делают своих служебных запросов к БД? На их количестве, Ваш лишний запрос просто затеряется. Кстати, шаблоны отчётов храню в БД, отчёты постоянно "дёргают" порядка 30-40 человек, и это никак не влияет на производительность, хотя и предусмотрел кэширование шаблонов отчётов на клиентах, но эта функция так никогда и не пригодилась. А если у Вас всё-таки проблема серьёзная, требующая кэширующего решения, то посмотрите в сторону SQLLite на клиенте: всё-таки БД, можете повторить в ней структуру своей основной БД, да и можете поднять в своей программе такую фишку, как "устойчивая работа программы в случае отсутствия сети" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2020, 14:14
|
|||
|---|---|---|---|
|
|||
Актуальные данные с базы |
|||
|
#18+
Все современные СУБД очень эффективно кэшируют результаты запросов. Если сотня клиентов обратится за одинаковыми данными, то сервер обратится к таблице только один раз, а потом будет вытаскивать данные из кэша. Я думаю, Вы зря заморачиваетесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2020, 14:20
|
|||
|---|---|---|---|
Актуальные данные с базы |
|||
|
#18+
Dimitry Sibiryakov, Нет конечно, в каждом случае выбирается свой набор клиентов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2020, 14:24
|
|||
|---|---|---|---|
|
|||
Актуальные данные с базы |
|||
|
#18+
SashauaНет конечно Тогда не майтесь фигнёй. Люди, способные грамотно сделать локальный кэш данных, такие топики не начинают. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2020, 20:03
|
|||
|---|---|---|---|
Актуальные данные с базы |
|||
|
#18+
https://habr.com/ru/post/168725 оно вам надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2020, 20:27
|
|||
|---|---|---|---|
Актуальные данные с базы |
|||
|
#18+
Sashaua Добрый день, Подскажите пожалуйста. Delphi+Firebird В базе есть ряд параметров которые добавляются/обновляются очень редко, например валюты единицы измерения итд. Эти параметры я из базы загружаю при логине пользователя в программу и если надо использовать эти записи я их дергаю локально.Они добавляются/обновляются настолько редко что для пользователей несоставляет труда перелогинится в программу при их изменениях. Есть например таблица клиентов и она октивно меняеться , есть способ на клиентах держать актуальный список записей с таблицы а не ходить каждый раз за ними в базу? Не люби мозги, грузи всё из базы. Когда тормоза появятся, вот тогда и оптимизируй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2020, 20:34
|
|||
|---|---|---|---|
|
|||
Актуальные данные с базы |
|||
|
#18+
Sashaua > Есть например таблица клиентов и она октивно меняеться, Sashaua > есть способ на клиентах держать актуальный список записей Sashaua > с таблицы а не ходить каждый раз за ними в базу? Это локальная сеть предприятия или какая-то медленная внешняя сеть? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&tablet=1&tid=2038558]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 468ms |

| 0 / 0 |
