powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Скорость работы Fireberd по сети
111 сообщений из 111, показаны все 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
Скорость работы Fireberd по сети
    #39927999
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

кастуй БЛОБы к варчару.
роундтрипов меньше будет.


В блобах SQL запросы, они большие.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928000
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
В том то и дело, что работать надо из Конторы2

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

сравни пинги


Из дома 1-2 мс, даже странно, как по локалке.
С Конторы2 73-77мс
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928003
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧТД
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928005
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настроить подключение по RDP и забыть про пинги
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928007
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений
блобы увеличивают кол-во раундтрипов в разы


А как можно ускорить передачу большого текста?
Запросы не все большие, но все равно больших запросов достаточно много.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928011
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39Как раз первый запрос, это загрузка на клиент SQL запросов, там их около 150 записей 5
BLOBов на запись.

Обломись, эта хрень быстро работать не будет никак.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928016
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39,

нормально никак. Можно часть которая помещается в VARCHAR, а в BLOB отдавать NULL, те кто не помещает передавать как было. Но это надо клиентскую сторону переписывать.
Кстати кому в голову пришло передавать запросы с сервера как BLOB? Это не очень умно.
К слову в 1.5 запросы длиннее 64K всё равно нельзя было делать. У VARCHAR ограничение 32K не уж то длиннее запросы писали?
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928025
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хранить в блобе зипованные запросы? на клиенте распаковывать. глядишь зип утрамбуется и в варчар чарсет октетц.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928026
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
К слову в 1.5 запросы длиннее 64K всё равно нельзя было делать. У VARCHAR ограничение 32K не уж то длиннее запросы писали?

Если там вдруг не-ascii, то уже 8К, что совсем не много. Хотя можно сделать поле octets, но имея в виду, что там utf8
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928032
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2,

с чего бы это? WIN1251 однобайтовая кодировка.
UTF-8 нормального во время 1.5 не было
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928036
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
Дегтярев Евгений
блобы увеличивают кол-во раундтрипов в разы


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


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


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


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

Ну это же не справочники.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928056
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor
раньше было ZeBeDee.
В том виде как оно было тогда, в том же виде пребывает и сейчас. Вполне, кстати, можно пользоваться. По идее из более нового - это OpenVPN с соотв. параметрами конфига относительно компрессии трафика.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928058
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
RRR39,

нормально никак. Можно часть которая помещается в VARCHAR, а в BLOB отдавать NULL, те кто не помещает передавать как было. Но это надо клиентскую сторону переписывать.
Кстати кому в голову пришло передавать запросы с сервера как BLOB? Это не очень умно.
К слову в 1.5 запросы длиннее 64K всё равно нельзя было делать. У VARCHAR ограничение 32K не уж то длиннее запросы писали?


Наоборот все отлично реализовано.
Изначально клиентская прога была написана на Делфи. Все запросы хранятся в базе, и получаются клиентом по мере необходимости или при запуске. В итоге при изменении какого то запроса, ни чего на клиенте менять не надо. Вычисления производятся в хранимых процедурах. Клиент ни чего лишнего не получает и почти ни чего не считает.

Перегнать Блобы в Варчач можно в процедуре, и запрашивать уже процедуру. Я просто не знал что Варчар можно сделать 32тыс символов. Надо попробовать.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928063
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39Я просто не знал что Варчар можно сделать 32тыс символов.


Не символов, а байт. Точнее 32765.

Главное не превысить ещё и общее ограничение на размер сообщения (длины записи) в 64K
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928071
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39,

У вас же эти запросы не меняются каждый день?
Кешируйте их. Сохраните в файл.
В при первом запуске скачайте хеши запросов в БД, и сравните с такими же в файлах.
Ускорите загрузку на порядки
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928076
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений
RRR39,

У вас же эти запросы не меняются каждый день?
Кешируйте их. Сохраните в файл.
В при первом запуске скачайте хеши запросов в БД, и сравните с такими же в файлах.
Ускорите загрузку на порядки


в 1.5 были хэши?
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928079
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor,

ну UDF то всегда можно написать.
Их и в 3.0 нормальных нет, слишком много коллизий даёт. Нормальные встроенные хэши появились только в 4.0.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928081
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor,

В rfunc есть md5sum, вполне подойдет

md5 удобно тем, что на клиенте его можно посчитать, в отличии от встроенной функции
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928088
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
RRR39Я просто не знал что Варчар можно сделать 32тыс символов.


Не символов, а байт. Точнее 32765.

Главное не превысить ещё и общее ограничение на размер сообщения (длины записи) в 64K

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

У вас же эти запросы не меняются каждый день?
Кешируйте их. Сохраните в файл.
В при первом запуске скачайте хеши запросов в БД, и сравните с такими же в файлах.
Ускорите загрузку на порядки


Да, уже подумывыл о таком варианте.
Конечно без хэшей, а просто закинуть в Контору2 локальный комплект запросов.
Но тут оказалось, что Варчар это целая куча символов и небольшая процедурка ускорила получение SQL запросов раз этак в 30.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928099
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
Шавлюк Евгений
RRR39,

У вас же эти запросы не меняются каждый день?
Кешируйте их. Сохраните в файл.
В при первом запуске скачайте хеши запросов в БД, и сравните с такими же в файлах.
Ускорите загрузку на порядки

Да, уже подумывыл о таком варианте.
Конечно без хэшей, а просто закинуть в Контору2 локальный комплект запросов.
Но тут оказалось, что Варчар это целая куча символов и небольшая процедурка ускорила получение SQL запросов раз этак в 30.


если это SQL - то размер оператора все равно не может быль больше 32к. за глаза хватит.

потыкал палкой полторашку на тестере

там есть TcpRemoteBufferSize

# TCP/IP buffer size for send and receive buffers of both the client
# and server. The engine reads ahead of the client and can send
# several rows of data in a single packet. The larger the packet size,
# the more data is sent per transfer. Range is 1448 to 32768.
#
# Type: integer
#
#TcpRemoteBufferSize = 8192
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928123
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastorтам есть TcpRemoteBufferSize

Не поможет. Проблема в упрямом <латентность сети>*<количество round-trip>.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928336
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor

раньше было ZeBeDee. в ней можно было зиповать траффик. что есть сейчас - пес его знает. без надобности.

ZeBeDee не уменьшает количество пакетов. Только шифрует и сжимает информацию в них.
Мы используем zebedee исторически с точки зрения шифрования обмена по публичным каналам.
Но. Одно "но" есть важное.
У ZeBeDee есть шикарные логи, которые позволят увидеть то количество пакетов, которое прошло в обе стороны. И понять, как задержки сети (время ping) влияет на именно ваш клиент-серверный обмен.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928367
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_a

У ZeBeDee есть шикарные логи, которые позволят увидеть то количество пакетов, которое прошло в обе стороны. И понять, как задержки сети (время ping) влияет на именно ваш клиент-серверный обмен.


у всех наших приложений есть свои щикарные логи.
и счетчики.

поскольку несколько лет я всем кандидатам в качестве первого задания ставил задачу по улучшению записи логов и парсинга логов, то оно выросло во что-то похожее на r/syslog/d

все xml и http пакеты у нас бегают с gzip.

ждем того же и от firebird.
может когда и дождемся продолжения сессии после кратковременного разрыва подключения.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928661
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Провел эксперемент с разными версиями Фаерберда 1.5: 2.1; 3.05

Клиент под админом после загрузки запросов, проверяет их работоспособность на случай если какой то запрос после очередных изменений оказался нерабочим. Протестировал время выполнения данной операции на разных версиях Фаерберда.
База на FB 1.5 такая же по структуре как и 2.1-3.0 но больше по объему. База для FB 3.0 ковертирована из базы для 2.1
Локально данное действие занимает примерно 1 секунду.
Дом -> Контора1 3 секунды.

По интернету из Конторы2 до дома:

FB 1.5 - 34 сек. (база больше по размеру)

FB 2.1 - 31 сек.

FB 3.0.5 - 31 сек.

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

Дай угадаю: ты менял только сервер, а клиент был одним и тем же?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928704
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

RRR39Разницы между версиями FB практически нет.

Дай угадаю: ты менял только сервер, а клиент был одним и тем же?..


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

FB 1.5 - 33 сек.

FB 2.1 - 13 сек.

FB 3.0.5 - 12 сек.

Теперь такой вопрос имеет ли смысл переходить на версию 3.0 или достаточно версии 2.1?
Какие дополнительные плюшки дает 3.0 по сравнению с 2.1?
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928719
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клиента можно обновлять "до упора" и делать это ещё до того, как обновляется сервер.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928737
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
имеет ли смысл переходить на версию 3.0 или достаточно версии 2.1?
2.1 снята с техподдержки.
RRR39
Какие дополнительные плюшки дает 3.0 по сравнению с 2.1?
Merge например, если навскидку, инкрементарный бэкап, оконные функции и много страниц релизнот с полным описанием плюшек.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928741
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
Теперь такой вопрос имеет ли смысл переходить на версию 3.0 или достаточно версии 2.1?

В чем смысл обновляться на не самую новую версию?
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928760
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
FB 1.5 - 33 сек.
FB 2.1 - 13 сек.
FB 3.0.5 - 12 сек.
в трешке можно включить зипование трафика

# Should connection over the wire be compressed?
# Client only value - server should follow client setting if connect using
# correct protocol (>=13).
#
# Per-connection configurable.
#
# Type: boolean
#
WireCompression = true
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928768
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky
в трешке можно включить зипование трафика

WireCompression = true


а я все поезда под откос пускаю
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928803
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor
а я все поезда под откос пускаю
Компрессия в канале на уровне ВПНа и компрессия внутри ФБ не совсем одно и то же, хотя и там и там зип архиватор.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928804
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
В чем смысл обновляться на не самую новую версию?
Например мы обновлялись с 1.0.3 на 2.5.2 практически незаметно, а вот обновление с 2.5 на 3.0.5 растянулось и сопровождалось кучей правок в коде как хранимок, так и клиента.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928806
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

у меня наоборот обновление 1.5->2.5 шло очень долго. А вот 2.5->3.0 хватило месяца.
Хотя я 3.0 начинал тестировать ещё с альфы, может потому и так быстро получилось
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39928817
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
Ivan_Pisarevsky,

у меня наоборот обновление 1.5->2.5 шло очень долго. А вот 2.5->3.0 хватило месяца.
Хотя я 3.0 начинал тестировать ещё с альфы, может потому и так быстро получилось


Мы делаем зоопарк. Кто-то из разработчиков на Win7, кто-то на Win8, кто-то на Win10. У кого FB 2.5, у кого-то 3.0.
У разработчиков может быть и больше одного компа - стационар + ноутбуки.

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

В чем смысл обновляться на не самую новую версию?


Я знаю что для перехода на 2.1. мне надо взять в кавычки на "START" в процедурах и запросах. Я уже переводил одну такую базу на 2.1, знаю что этого достаточно и все будет работать.
А при переходе на 3.0 может вылезти еще что ни будь, чего я не знаю.
Соответственно надо определится, стоит ли овчинка выделки.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39929059
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39,

ну а как ты хотел быстро перейти без тестирования и доработки напильником? Так не бывает.
Откуда уверенность что 2.1 всё OK? Успешный b/r не даёт гарантии полной работоспособности вашей программы.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39929060
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky
pastor
а я все поезда под откос пускаю
Компрессия в канале на уровне ВПНа и компрессия внутри ФБ не совсем одно и то же, хотя и там и там зип архиватор.


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


Можно про зипование трафика поподробнее?
И в чем ирония от товарища pastor?


при передаче длинных варчаров вместо 4к ноликов имеет смысл передать пяток байтов сжатой строки.

шифрование в канале может сжимать еще и заголовки, и вообще делать MTU поболе и гонять огромными пакетами.

и это, если при объявлении текстового блоба указать SEGMENT SIZE 1024 вместо умолчательных 80, уже таки будет профит.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39929067
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
RRR39,

ну а как ты хотел быстро перейти без тестирования и доработки напильником? Так не бывает.
Откуда уверенность что 2.1 всё OK? Успешный b/r не даёт гарантии полной работоспособности вашей программы.


У одного из клиентов база на 2.1. По ряду причин пришлось перевести, работает почти 10 лет. Конвертнуть эту базу в 3.0 получилось без проблем, собственно на них я и тестировал скорость FB 2.1 и FB 3.0.. Но вдруг потом что то вылезет.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39929106
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor
и это, если при объявлении текстового блоба указать SEGMENT SIZE 1024 вместо умолчательных 80, уже таки будет профит.
я лично не знаю библиотек доступа, которые смотрят на размер SEGMENT SIZE.
а ты?
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39929109
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
Можно про зипование трафика поподробнее?
Выше вполне исчерпывающая часть конфига, там написано, что применить его надо на клиенте, клиенту должна быть доступна либа zlib. Против длинного пинга поможет слабо.
RRR39
И в чем ирония от товарища pastor?
Видимо в том, что доступное ныне встроенное пакование трафика коллега пастор не применяет. Причем не факт, что стОит менять подход, надо тестировать на конкретных условиях.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39929231
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastorи это, если при объявлении текстового блоба указать SEGMENT SIZE 1024 вместо умолчательных 80, уже таки будет профит.
партизаны всё еще указывают segment size...
http://www.ibase.ru/ibfaq/#bss
я даже процитирую себя

Как правильно задать SEGMENT SIZE для BLOB?
Задавать этот параметр вовсе не нужно. Фактически, это атавизм – используется только утилитой GPRE при обработке Embedded SQL.

При этом препроцессор Embedded SQL будет использовать объявленный segment size просто как буфер требуемой длины для чтения или записи блоба. Blob segment size = 80 байт по умолчанию, потому что в изначальной версии InterBase в блобах хранились строки, а в те древние времена длина строки была обычно ограничена числом символов, помещающихся на алфавитно-цифровой терминал.

Компоненты или драйверы практически всегда используют жестко заданный размер "сегмента". Например, в IBX (и FIBPlus) размер буфера для записи куска данных в blob определяется константой DefaultBlobSegmentSize (ibblob.pas), которая равна 16к. Если посмотреть код функции записи blob
procedure WriteBlob(hBlobHandle: PISC_BLOB_HANDLE; Buffer: PChar; BlobSize: Long);
то в коде видно, что если размер записываемых данных меньше чем размер буфера (16к), то в isc_put_segment указывается скорректированный размер буфера (переменная SegLen).

Сервер сохраняет blob следующим образом:

  • Если размер данных, записываемых в blob, помещается на свободном месте рядом с оригинальной записью, которой принадлежит blob – blob записывается на это место (при этом возникает "фрагментированность" страниц данных блобами, что в некоторых случаях может ухудшить производительность при обработке только записей). Объем свободного места зависит от размера страницы и количества записей, уже размещенных на этой странице.
  • Если свободного места на странице записей нет, то для blob выделяется отдельная страница или несколько, в зависимости от размера blob. Если после записи blob на такой странице осталось свободное место, то оно остается пустым и не будет занято другими blob.


Кроме этого, в ФБ 3 блобы, которые помещаются на страницу, всё равно записываются на secondary pages, и поэтому не "фрагментируют" записи, которые находятся на primary pages.
И, размер сегмента блоба может быть не равен размеру страницы, и БОЛЬШЕ размера страницы. Например, страница БД 8к, а размер сегмента - 16к.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930020
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой вопрос.
Перевел базу на версию 3.0.
Сначала под 1.5 в IBExpert выдернул метаданные и данные в скрипты.
Потом под 3.0 скриптами создал базу и перекинул туда всю информацию.
Запустил клиент, тупит. Нашел тупящую процедуру и то место в ней которое тупит.
Простенький запрос выполняется 600мс.
Делаю бэкап/ресторе и запрос перестает тупить, выполняется как обычно 0мс.

Вопрос - почему тупило до Бэкап/Ресторе?
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930022
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39,

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

Ага, а индексы и констрейны, конечно же, создавал ещё до закачки данных. Это неправильная
идея.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930034
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

RRR39Потом под 3.0 скриптами создал базу и перекинул туда всю информацию.

Ага, а индексы и констрейны, конечно же, создавал ещё до закачки данных. Это неправильная
идея.


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

Индексы и констреинты как минимум тормозят операции модификации, то есть, процесс заливки.
Более того, их наличие налагает ограничение на порядок заливки данных: например, нельзя занести детальные записи, пока не созданы их мастера.
...
Что мешает перенеси момент создания индексов "на потом"?
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930054
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
RRR39
...
А разве индексы и связи создаются не на стадии создания таблицы?
Ведь любая база в начальный момент времени пуста.

Индексы и констреинты как минимум тормозят операции модификации, то есть, процесс заливки.
Более того, их наличие налагает ограничение на порядок заливки данных: например, нельзя занести детальные записи, пока не созданы их мастера.
...
Что мешает перенеси момент создания индексов "на потом"?


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

можно по всякому сделать. Например, если переносить данные ibpump-ом, то можно
- после создания таблиц из скрипта сделать gbak -b / gbak -c -i
то есть, не активировать индексы в конце рестора.
Потом ибпампом перекинуть данные (на момент заливки он деактивирует все триггеры, потом активирует).
Потом активировать все индексы - alter index ... active. Разве что надо сначала все ПК, а потом уже все ФК.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930057
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39Таблицы базы создавалась выгруженным скриптом.
Править скрипт, что бы создать таблицы без индексов, что бы потом создавать заново
индексы, это делать двойную работу.

Тот, кто не имеет мастер-скрипта, должен страдать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930059
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, (w)isql экстрактит скрипт создания метаданных разумно - сначала таблицы с РК, а все прочие констрайнты и индексы потом, альтерами-криейтами. Что удобно. Порезал скрипт на куски, выполнил первый, залили данные, погнал дальше.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930082
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
Такой вопрос.
Перевел базу на версию 3.0.
Сначала под 1.5 в IBExpert выдернул метаданные и данные в скрипты.
Потом под 3.0 скриптами создал базу и перекинул туда всю информацию.
Запустил клиент, тупит. Нашел тупящую процедуру и то место в ней которое тупит.
Простенький запрос выполняется 600мс.
Делаю бэкап/ресторе и запрос перестает тупить, выполняется как обычно 0мс.

Вопрос - почему тупило до Бэкап/Ресторе?


Если создать индекс, то ему при отсутствии записей выставляется статистика "0". При добавлении записей статистика автоматически не пересчитывается, поэтому при построении плана запроса мог влезть неудачный индекс.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930217
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СПМ> Кстати, (w)isql экстрактит скрипт создания метаданных разумно -
СПМ> сначала таблицы с РК, а все прочие констрайнты и индексы потом

Так и IBE так же делает вроде.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930261
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
RRR39,

можно по всякому сделать. Например, если переносить данные ibpump-ом, то можно
- после создания таблиц из скрипта сделать gbak -b / gbak -c -i
то есть, не активировать индексы в конце рестора.
Потом ибпампом перекинуть данные (на момент заливки он деактивирует все триггеры, потом активирует).
Потом активировать все индексы - alter index ... active. Разве что надо сначала все ПК, а потом уже все ФК.


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

FB 1.5
------ Performance info ------
Prepare time = 0ms
Execute time = 36m 11s 565ms
Avg fetch time = 83 521,73 ms
Current memory = 459 942 128
Max memory = 459 990 128
Memory buffers = 2 048
Reads from disk to cache = 3 643 606
Writes from cache to disk = 0
Fetches from cache = 1 284 223 696


FB 3.0
------ Performance info ------
Prepare time = 0ms
Execute time = 22m 32s 467ms
Avg fetch time = 52 017,96 ms
Current memory = 11 992 240
Max memory = 80 144 784
Memory buffers = 2 048
Reads from disk to cache = 4 171 614
Writes from cache to disk = 1
Fetches from cache = 822 377 863


Разница 14 минут. Экономия времени 40%.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930284
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39Насколько я понимаю, ibpump переносит данные из базы в базу.
Проблема в том, что FB 3.0 не открывает старую базу, матерится на версию.
какая же это проблема? Например, 2 embedded. Или два ФБ на разных портах. Или один embedded, и один сервер. Или 2 компа с разными ФБ.
Я сходу 4 варианта привел.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930290
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
RRR39Насколько я понимаю, ibpump переносит данные из базы в базу.
Проблема в том, что FB 3.0 не открывает старую базу, матерится на версию.

какая же это проблема? Например, 2 embedded. Или два ФБ на разных портах. Или один embedded, и один сервер. Или 2 компа с разными ФБ.
Я сходу 4 варианта привел.

Возможно.
Но мне более привычен перенос через скрипты.
Если бы база была на несоколько гигабайт, тогда наверно пришлось бы что то другое изобретать, а так и скриптов хватило.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930291
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39Reads from disk to cache = 4 171 614
Fetches from cache = 822 377 863

За такие запросы надо руки отрывать. У тебя база на террабайт с миллиардом записей внутри?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930351
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
ёёёёё
пропущено...

Индексы и констреинты как минимум тормозят операции модификации, то есть, процесс заливки.
Более того, их наличие налагает ограничение на порядок заливки данных: например, нельзя занести детальные записи, пока не созданы их мастера.
...
Что мешает перенеси момент создания индексов "на потом"?


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

Почему "выгруженный скрипт" создается не сразу так, как надо? Не ты его создаешь, что ли?
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930355
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишка
Кстати, (w)isql экстрактит скрипт создания метаданных разумно - сначала таблицы с РК, а все прочие констрайнты и индексы потом, альтерами-криейтами. Что удобно. Порезал скрипт на куски, выполнил первый, залили данные, погнал дальше.


И IBExpert так.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930359
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Портянки пространных рассуждений, вместо того, чтобы после массированной заливки данных пересчитать статистику индексов. Статистику, кстати, стОит пересчитывать не только после первоначальной заливки данных. Тройка к статистике относится более трепетно и употребляет оную по назначению гораздо чаще и разумнее предыдущих версий.
Не осилившие пипку в эксперте про пересчет статистики может сделать базе рэкап-рестор, тоже помогает.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39931383
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

RRR39Reads from disk to cache = 4 171 614
Fetches from cache = 822 377 863

За такие запросы надо руки отрывать. У тебя база на террабайт с миллиардом записей внутри?


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


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

Почему "выгруженный скрипт" создается не сразу так, как надо? Не ты его создаешь, что ли?


В IBExpert есть функция "Извлечь метаданные".
Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет.
Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39931388
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
В IBExpert есть функция "Извлечь метаданные".
Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет.
Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные.


Если при выгрузке метаданных указать что нужно извлекать в скрипт и собственно данные, в указанных таблицах, то создается скрипт в котором:

- создаются таблицы
- в них заливаются данные
- на таблицы создаются ключи, индексы, и т.п.

Затык может быть даже и на одной таблице, если она ссылается сама на себя.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE SA (
    ID         INTEGER NOT NULL,
    ID_PARENT  INTEGER,
    NAME       VARCHAR(250) DEFAULT ''
);

ALTER TABLE SA ADD CONSTRAINT SA_PK PRIMARY KEY (ID);
ALTER TABLE SA ADD CONSTRAINT SA_FK_ID_PARENT FOREIGN KEY (ID_PARENT) REFERENCES SA (ID);



В таблице загружены данные

IDID_PARENTNAME1NULLкорень2NULLкорень31ветка

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

Если поредактировать таблицу с перестройкой дерева и получить такую структуру:

IDID_PARENTNAME13ветка2NULLкорень3NULLкорень

То вставка в порядке ID уже будет невозможна.
Т.е. поддержка возрастания ID ничего не гарантирует.

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

Почему "выгруженный скрипт" создается не сразу так, как надо? Не ты его создаешь, что ли?


В IBExpert есть функция "Извлечь метаданные".
Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет.
Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные.


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

Ну если тебе надо чтобы база работала медленно, то о чём тогда этот топик?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39931651
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

его мелкую базу в 200 МБайт вообще можно целиком в кеш 3.0 SS загнать. Я думаю его запрос ещё в 2 раза ускорится.
Но запрос всё равно явно попахивает.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39931657
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЯ думаю его запрос ещё в 2 раза ускорится.

Не в 2, там, скорее, на порядки будет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39932322
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
RRR39
пропущено...


В IBExpert есть функция "Извлечь метаданные".
Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет.
Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные.


IBExpert как раз формирует скрипт так, что индексы и проч. создаются после заливки данных.


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

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

RRR39Запрос действительно геморойный, но так надо.

Ну если тебе надо чтобы база работала медленно, то о чём тогда этот топик?


Там же написано в самом начале, вы не читали?
Коротко поясню суть. Скорость получения данных из базы, при подключении через интернет от провайдера1, сильно отличается от скорости получения данных из той же самой базы при подключении по локальной сети или при подключении через интернет от провайдера2.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39932386
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
RRR39
Возможно. Я данные выгружал отдельно поэтому не знаю.

Ну так посмотри, ещё не поздно.


А зачем такая портянка с метаданными и данными в одном скрипте?
IBExpert скрипт такого размера даже не откроет.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39932406
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39Коротко поясню суть.

Ты лучше поясни смысл шутки, когда один запрос ты намеренно делаешь супер-тормозным потому
что "так надо", а другой запрос тебе почему-то уже не "так надо". Что за двуличие и прочая
ситуационная мораль?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39932433
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
ёёёёё
пропущено...

Ну так посмотри, ещё не поздно.


А зачем такая портянка с метаданными и данными в одном скрипте?
IBExpert скрипт такого размера даже не откроет.

То есть, смотреть ты не станешь. Ну, ладно.

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

А зачем такая портянка с метаданными и данными в одном скрипте?
IBExpert скрипт такого размера даже не откроет.


В редактор не загрузит, да. А выполнить - выполнит.
И есть еще опция выгрузки в отдельные файлы. При этом получатся две части с метаданными (до и после вставки данных), кучка скриптов и lob-файлов с данными таблиц, и скрипт с набором INPUT в правильном порядке.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39932571
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

RRR39Коротко поясню суть.

Ты лучше поясни смысл шутки, когда один запрос ты намеренно делаешь супер-тормозным потому
что "так надо", а другой запрос тебе почему-то уже не "так надо". Что за двуличие и прочая
ситуационная мораль?


Потому что простое действие в программе с задержкой в 1-2сек видна невооруженным глазом и бесит пользователя.
А тот запрос который выполнялся 30 минут, пользователями в таком объеме ни когда выполнялся.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39932573
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
RRR39
пропущено...


А зачем такая портянка с метаданными и данными в одном скрипте?
IBExpert скрипт такого размера даже не откроет.

То есть, смотреть ты не станешь. Ну, ладно.

Решение - на расстоянии вытянутого мизинца. Но тебе не нужно, чтобы работало, а нужно доказать, что кто-то другой виноват в том, что не работает?


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

А зачем такая портянка с метаданными и данными в одном скрипте?
IBExpert скрипт такого размера даже не откроет.


В редактор не загрузит, да. А выполнить - выполнит.
И есть еще опция выгрузки в отдельные файлы. При этом получатся две части с метаданными (до и после вставки данных), кучка скриптов и lob-файлов с данными таблиц, и скрипт с набором INPUT в правильном порядке.


Я знаю что выполнит.
Но перед выполнением скрипта, мне надо было переименовать все колонки и переменные процедур и тригеров с именем START. Собственно именно поэтому мне пришлось так заморачиваться с базой вместо того что бы сделать бэкап/ресторе.
Производить поиск и замену в 200-300 мегабайтном файле или в нескольких файлах явно сложнее чем в полмегабайтном.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39932646
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
вместо того что бы сделать бэкап/ресторе.
Почему вместо? Что мешает сделать б/р сейчас? После всех манипуляций, все едино б/р надо делать регулярно, от "раз в месяц" до "раз в год",в зависимости от нагрузки на запись. Впрочем я повторяюсь, судя по упертости автору нужно не решение,а процесс.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39932787
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky
RRR39
вместо того что бы сделать бэкап/ресторе.

Почему вместо? Что мешает сделать б/р сейчас? После всех манипуляций, все едино б/р надо делать регулярно, от "раз в месяц" до "раз в год",в зависимости от нагрузки на запись. Впрочем я повторяюсь, судя по упертости автору нужно не решение,а процесс.



Ваши советы я читаю читаю, пробую или принимаю к сведению на будущее. Спасибо большое за помощь.
Просто пересоздание базы, перенос данных и лечение возникших после переноса тормозов уже давно пройденный этап.
Несмотря на то, что на FB 3.0 скорость выросла, в том числе и локально, все равно хотелось бы скорость увеличить.
Судя по IBExpert больше всего времени сжирает подготовка запроса. При пинге 30мс до дома, запрос готовится 260-300мс, а выполняется 50-70мс.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39932809
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
Судя по IBExpert больше всего времени сжирает подготовка запроса. При пинге 30мс до дома, запрос готовится 260-300мс, а выполняется 50-70мс.

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


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