powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Скорость работы Fireberd по сети
25 сообщений из 111, страница 1 из 5
Скорость работы Fireberd по сети
    #39927733
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть старая тема 2014 года с такой же проблемой. Проблема там не была решена.
Сначала написал туда, мне посоветовали создать новую тему.

Имеется база на Fireberd 1.5. и клиентское приложение.
Возникла потребность работы с данной базой через интернет.
Скорость выполнения запросов очень сильно отличается в зависимости от того к какому провайдеру подключен клиент. Скорость работы с компьютера получающего интернет от того же провайдера что и сервер, сильно отличается от скорости с компьютера с интернетом от другого провайдера.
Скорость интернета клиентских машин одинакова 100 Мбит.
В чем проблема, и как ее решить?

Отчету IBExpert

Простой запрос из сети того же провайдера

План
PLAN (FIB$DATASETS_INFO ORDER PK_FIB$DATASETS_INFO)

------ Performance info ------
Prepare time = 47ms
Execute time = 0ms
Avg fetch time = 0,00 ms
Current memory = 10 976 712
Max memory = 11 280 600
Memory buffers = 2 048
Reads from disk to cache = 40
Writes from cache to disk = 0
Fetches from cache = 502


Простой запрос из сети другого провайдера

План
PLAN (FIB$DATASETS_INFO ORDER PK_FIB$DATASETS_INFO)

------ Информация о производительности ------
Время подготовки запроса = 1s 61ms
Время выполнения запроса = 156ms
Среднее время на получение одной записи = 4,22 ms
Current memory = 11 303 216
Max memory = 11 660 188
Memory buffers = 2 048
Reads from disk to cache = 40
Writes from cache to disk = 0
Fetches from cache = 502



Более тяжелый запрос из сети того же провайдера

План
PLAN SORT (JOIN (JOIN (JOIN (JOIN (JOIN (S NATURAL,H INDEX (FK4_HOUSES),F INDEX (FK1_FLATES),C INDEX (FK1_COUNTS),T INDEX (FK2_TURNS)),JOIN (JOIN (T INDEX (PK_TURNS),U INDEX (FK1_UTILITIES)),JOIN (T INDEX (FK2_TURNS),PM INDEX (FK1_PAYMENTS),PP INDEX (FK_PARTPAYS_PENY_1)))),JOIN (T INDEX (FK2_TURNS),P INDEX (PENY_IDX1))),SORT (JOIN (JOIN (JOIN (CD INDEX (FK1_COUNT_DOCS),D INDEX (PK_DOCUMENTS)),CDP INDEX (FK_COUNT_DOCS_PEOPLES_1)),P INDEX (PK_PEOPLE)))),CERTIFICATES INDEX (PK_CERTIFICATES))(COUNT_DOCS INDEX (FK1_COUNT_DOCS))(PERIODS INDEX (PK_PERIODS))(P INDEX (PK_PERIODS)))

------ Performance info ------
Prepare time = 47ms
Execute time = 5s 710ms
Avg fetch time = 228,40 ms

Более тяжелый запрос из сети другого провайдера

План
PLAN SORT (JOIN (JOIN (JOIN (JOIN (JOIN (S NATURAL,H INDEX (FK4_HOUSES),F INDEX (FK1_FLATES),C INDEX (FK1_COUNTS),T INDEX (FK2_TURNS)),JOIN (JOIN (T INDEX (PK_TURNS),U INDEX (FK1_UTILITIES)),JOIN (T INDEX (FK2_TURNS),PM INDEX (FK1_PAYMENTS),PP INDEX (FK_PARTPAYS_PENY_1)))),JOIN (T INDEX (FK2_TURNS),P INDEX (PENY_IDX1))),SORT (JOIN (JOIN (JOIN (CD INDEX (FK1_COUNT_DOCS),D INDEX (PK_DOCUMENTS)),CDP INDEX (FK_COUNT_DOCS_PEOPLES_1)),P INDEX (PK_PEOPLE)))),CERTIFICATES INDEX (PK_CERTIFICATES))(COUNT_DOCS INDEX (FK1_COUNT_DOCS))(PERIODS INDEX (PK_PERIODS))(P INDEX (PK_PERIODS)))

------ Информация о производительности ------
Время подготовки запроса = 1s 373ms
Время выполнения запроса = 5s 85ms
Среднее время на получение одной записи = 169,50 ms


Этот же запрос из сети другого провайдера через несколько минут

План
PLAN SORT (JOIN (JOIN (JOIN (JOIN (JOIN (S NATURAL,H INDEX (FK4_HOUSES),F INDEX (FK1_FLATES),C INDEX (FK1_COUNTS),T INDEX (FK2_TURNS)),JOIN (JOIN (T INDEX (PK_TURNS),U INDEX (FK1_UTILITIES)),JOIN (T INDEX (FK2_TURNS),PM INDEX (FK1_PAYMENTS),PP INDEX (FK_PARTPAYS_PENY_1)))),JOIN (T INDEX (FK2_TURNS),P INDEX (PENY_IDX1))),SORT (JOIN (JOIN (JOIN (CD INDEX (FK1_COUNT_DOCS),D INDEX (PK_DOCUMENTS)),CDP INDEX (FK_COUNT_DOCS_PEOPLES_1)),P INDEX (PK_PEOPLE)))),CERTIFICATES INDEX (PK_CERTIFICATES))(COUNT_DOCS INDEX (FK1_COUNT_DOCS))(PERIODS INDEX (PK_PERIODS))(P INDEX (PK_PERIODS)))

------ Информация о производительности ------
Время подготовки запроса = 967ms
Время выполнения запроса = 5s 351ms
Среднее время на получение одной записи = 178,37 ms
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927768
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39,

вопрос про базу на одном и том же компе, а клиент - с разных провайдеров?
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927774
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39,

FB версий до 2.5 (или даже до 3.0) сильно зависит не столько от пропускной способности сети, сколько от времени отклика.
после 50 мс работать становится некомфортно.

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


У меня сейчас приложения вместо чтения настроек и ресурсов по месту применения, читают все таблицу при подключении.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927776
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Да.
"Контора1" (где база) - "Провайдер1".
Домашний комп - "Провайдер1".
"Котнора2" (которой надо организовать работу с базой через интернет) - "Провайдер2".
Тормозит из Контора2 в Контора1.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927777
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor,

насколько я помню сетевой протокол правили в 2.1. В 3.0 сделали ещё несколько улучшений.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927780
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor
RRR39,
Переходите на тройку, переписывайте приложение, уменьшайте кол-во обращений к серверу.


Хотел как то давно перевести базу на 2.5, но столкнулся с проблемой зарезервированных имен. В базе довольно много полей с именем "START". Соответственно с таким же именем есть поля представлений, параметры процедур и тригерров. В 2 с чем то это имя зарезервировали, и если поправить запросы не проблема, достаточно взять START в ковычки, то перетряхать и пересобирать процедуры и представления довольно геморойно. Задача конечно решаема, но это на крайней случай.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927805
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
В базе довольно много полей с именем "START"
Во блин, еще б begin/end поля назвали, или там, integer integer...
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927811
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

чуйка иногда подводит. Я вот тоже поле RANK назвал. При переходе на трёшку пришлось переделывать
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927824
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
18.02.2020 10:33, Симонов Денис пишет:
>
> чуйка иногда подводит. Я вот тоже поле RANK назвал. При переходе на трёшку пришлось переделывать
>

PATAMU CHTA NADO POLZOVAT RUSSKYE IMENA POLEY.

и хрен тогда нахтупишь на грабли %)))

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927835
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийPATAMU CHTA NADO POLZOVAT RUSSKYE IMENA POLEY.
нет. надо просто учить английский язык.

p.s. а насчет START - действительно ключевое слово в 2.5, но "зачем оно" - не врубаюсь.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927842
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

триггер ON TRANSACTION START
В 3.0 ещё в определении SEQUENCE/IDENTITY может быть
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927843
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
pastor,

насколько я помню сетевой протокол правили в 2.1. В 3.0 сделали ещё несколько улучшений.


2.1 мы проскочили. с 1.5 сразу на 2.5

тройку тоже проскакиваем, но задержки по сети на 3.0 тестировали. улучшения были, но не в разы. оптимизация нашего кода принесла гораздо больше эффекта.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927847
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
kdv,

триггер ON TRANSACTION START
В 3.0 ещё в определении SEQUENCE/IDENTITY может быть


там весь алфавит ангельский найти можно при желании.

вроде как убирали кучу ранее зарезервированных слов, на зависимость от контекста
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927916
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
Скорость интернета клиентских машин одинакова 100 Мбит.
В чем проблема, и как ее решить?


RRR39
Среднее время на получение одной записи = 169,50 ms

Тебе еще повезло.
Потому что "запрос - ожидание - ответ".
Предположим, связь ч/з и-нет - через спутники.
Геостационарный спутник висит на высоте ~35700км. Э/м сигнал доходит до него за 0.12 сек. Еще 0.12 сек - обратно, итого - четверть секунды. Без учета времени обработки на сервере и в аппаратуре связи.

С FireBird 1.5 ничего сделать нельзя, он старый и всеми забыт. Нужно менять логику работы, не "запрос-ответ" маленькими порциями, а "запрос - много данных", например - с помощью сервера приложений. Нужно программировать.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927926
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor
RRR39,

FB версий до 2.5 (или даже до 3.0) сильно зависит не столько от пропускной способности сети, сколько от времени отклика.
после 50 мс работать становится некомфортно.

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


У меня сейчас приложения вместо чтения настроек и ресурсов по месту применения, читают все таблицу при подключении.


+1
Если таблица справочная (особенно если в ней хранится куча настроек), то лучше её запросить один раз и хранить на клиенте, периодически обновляя.

Также можно добиться значительного ускорения, если избежать лишних операций "prepare", они для мелких быстрых запросов выполняются дольше (если время отклика сети большое), чем сам запрос (скорее всего на этапе prepare выполняется не один, а несколько сетевых запросов, вероятно, в зависимости от количества параметров в запросе).
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927940
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer
(скорее всего на этапе prepare выполняется не один, а несколько сетевых запросов, вероятно, в зависимости от количества параметров в запросе).

не один
op_allocate_statement + op_prepare_statement
и еще я видел op_info_sql
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927944
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
Геостационарный спутник висит на высоте ~35700км. Э/м сигнал доходит до него за 0.12 сек. Еще 0.12 сек - обратно, итого - четверть секунды. Без учета времени обработки на сервере и в аппаратуре связи.
по факту было минимум 400 мс, если канал не загружен и от 600 до 800 мс в часы пик. Это если односторонняя спутниковая часть с запросами через АДСЛ. Романтика... Сейчас 3Г есть даже в деревне в 170 км от города. Спутник для телевизионщиков, делать "последнюю милю" через спутники зело дорого.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927969
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer

+1
Если таблица справочная (особенно если в ней хранится куча настроек), то лучше её запросить один раз и хранить на клиенте, периодически обновляя.


Это ж надо логику какую-то прописать. Периодическое обновление! Я ещё понимаю, если справочник ну очень редкоизменяемый, ну прямо совсем редко.
Ещё надо заметить, что не совсем тривиальная задача сделать запрос, который подтянет данные с сервака и объединит их с теми, которые уже на клиенте.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927974
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI
DmSer

+1
Если таблица справочная (особенно если в ней хранится куча настроек), то лучше её запросить один раз и хранить на клиенте, периодически обновляя.


Это ж надо логику какую-то прописать. Периодическое обновление! Я ещё понимаю, если справочник ну очень редкоизменяемый, ну прямо совсем редко.
Ещё надо заметить, что не совсем тривиальная задача сделать запрос, который подтянет данные с сервака и объединит их с теми, которые уже на клиенте.


pastorУ меня сейчас приложения вместо чтения настроек и ресурсов по месту применения, читают все таблицу при подключении.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927983
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
С FireBird 1.5 ничего сделать нельзя, он старый и всеми забыт. Нужно менять логику работы, не "запрос-ответ" маленькими порциями, а "запрос - много данных", например - с помощью сервера приложений. Нужно программировать.


Из дома то нормальная скорость.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927988
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
ёёёёё
С FireBird 1.5 ничего сделать нельзя, он старый и всеми забыт. Нужно менять логику работы, не "запрос-ответ" маленькими порциями, а "запрос - много данных", например - с помощью сервера приложений. Нужно программировать.


Из дома то нормальная скорость.

Значит, надо работать из дома.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927994
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer

Если таблица справочная (особенно если в ней хранится куча настроек), то лучше её запросить один раз и хранить на клиенте, периодически обновляя.


Как раз первый запрос, это загрузка на клиент SQL запросов, там их около 150 записей 5 BLOBов на запись. Домой грузит быстро, разница с локальной базой пару секунд, а в Контрору2 грузит минуту.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927996
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
Значит, надо работать из дома.


В том то и дело, что работать надо из Конторы2
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927997
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кастуй БЛОБы к варчару.
роундтрипов меньше будет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39927998
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39,

BLOB говоришь. Грузит быстро... Верится с трудом

RRR39Домой грузит быстро, разница с локальной базой пару секунд, а в Контрору2 грузит минуту.

сравни пинги
...
Рейтинг: 0 / 0
25 сообщений из 111, страница 1 из 5
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Скорость работы Fireberd по сети
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]