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

start [/forum/topic.php?fid=58&msg=39929933&tid=2038558]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 363ms |

| 0 / 0 |
