|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Есть старая тема 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 07:27 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39, вопрос про базу на одном и том же компе, а клиент - с разных провайдеров? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 09:22 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39, FB версий до 2.5 (или даже до 3.0) сильно зависит не столько от пропускной способности сети, сколько от времени отклика. после 50 мс работать становится некомфортно. в 1.5. ничего с этим поделать нельзя. Переходите на тройку, переписывайте приложение, уменьшайте кол-во обращений к серверу. У меня сейчас приложения вместо чтения настроек и ресурсов по месту применения, читают все таблицу при подключении. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 09:34 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
kdv, Да. "Контора1" (где база) - "Провайдер1". Домашний комп - "Провайдер1". "Котнора2" (которой надо организовать работу с базой через интернет) - "Провайдер2". Тормозит из Контора2 в Контора1. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 09:36 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
pastor, насколько я помню сетевой протокол правили в 2.1. В 3.0 сделали ещё несколько улучшений. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 09:38 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
pastor RRR39, Переходите на тройку, переписывайте приложение, уменьшайте кол-во обращений к серверу. Хотел как то давно перевести базу на 2.5, но столкнулся с проблемой зарезервированных имен. В базе довольно много полей с именем "START". Соответственно с таким же именем есть поля представлений, параметры процедур и тригерров. В 2 с чем то это имя зарезервировали, и если поправить запросы не проблема, достаточно взять START в ковычки, то перетряхать и пересобирать процедуры и представления довольно геморойно. Задача конечно решаема, но это на крайней случай. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 09:45 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 В базе довольно много полей с именем "START" ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 10:29 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
YuRock, чуйка иногда подводит. Я вот тоже поле RANK назвал. При переходе на трёшку пришлось переделывать ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 10:33 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
18.02.2020 10:33, Симонов Денис пишет: > > чуйка иногда подводит. Я вот тоже поле RANK назвал. При переходе на трёшку пришлось переделывать > PATAMU CHTA NADO POLZOVAT RUSSKYE IMENA POLEY. и хрен тогда нахтупишь на грабли %))) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 10:49 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
МимопроходящийPATAMU CHTA NADO POLZOVAT RUSSKYE IMENA POLEY. нет. надо просто учить английский язык. p.s. а насчет START - действительно ключевое слово в 2.5, но "зачем оно" - не врубаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 10:59 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
kdv, триггер ON TRANSACTION START В 3.0 ещё в определении SEQUENCE/IDENTITY может быть ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 11:06 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Симонов Денис pastor, насколько я помню сетевой протокол правили в 2.1. В 3.0 сделали ещё несколько улучшений. 2.1 мы проскочили. с 1.5 сразу на 2.5 тройку тоже проскакиваем, но задержки по сети на 3.0 тестировали. улучшения были, но не в разы. оптимизация нашего кода принесла гораздо больше эффекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 11:07 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Симонов Денис kdv, триггер ON TRANSACTION START В 3.0 ещё в определении SEQUENCE/IDENTITY может быть там весь алфавит ангельский найти можно при желании. вроде как убирали кучу ранее зарезервированных слов, на зависимость от контекста ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 11:11 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 Скорость интернета клиентских машин одинакова 100 Мбит. В чем проблема, и как ее решить? RRR39 Среднее время на получение одной записи = 169,50 ms Тебе еще повезло. Потому что "запрос - ожидание - ответ". Предположим, связь ч/з и-нет - через спутники. Геостационарный спутник висит на высоте ~35700км. Э/м сигнал доходит до него за 0.12 сек. Еще 0.12 сек - обратно, итого - четверть секунды. Без учета времени обработки на сервере и в аппаратуре связи. С FireBird 1.5 ничего сделать нельзя, он старый и всеми забыт. Нужно менять логику работы, не "запрос-ответ" маленькими порциями, а "запрос - много данных", например - с помощью сервера приложений. Нужно программировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 13:01 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
pastor RRR39, FB версий до 2.5 (или даже до 3.0) сильно зависит не столько от пропускной способности сети, сколько от времени отклика. после 50 мс работать становится некомфортно. в 1.5. ничего с этим поделать нельзя. Переходите на тройку, переписывайте приложение, уменьшайте кол-во обращений к серверу. У меня сейчас приложения вместо чтения настроек и ресурсов по месту применения, читают все таблицу при подключении. +1 Если таблица справочная (особенно если в ней хранится куча настроек), то лучше её запросить один раз и хранить на клиенте, периодически обновляя. Также можно добиться значительного ускорения, если избежать лишних операций "prepare", они для мелких быстрых запросов выполняются дольше (если время отклика сети большое), чем сам запрос (скорее всего на этапе prepare выполняется не один, а несколько сетевых запросов, вероятно, в зависимости от количества параметров в запросе). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 13:07 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
DmSer (скорее всего на этапе prepare выполняется не один, а несколько сетевых запросов, вероятно, в зависимости от количества параметров в запросе). не один op_allocate_statement + op_prepare_statement и еще я видел op_info_sql ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 13:21 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ёёёёё Геостационарный спутник висит на высоте ~35700км. Э/м сигнал доходит до него за 0.12 сек. Еще 0.12 сек - обратно, итого - четверть секунды. Без учета времени обработки на сервере и в аппаратуре связи. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 13:25 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
DmSer +1 Если таблица справочная (особенно если в ней хранится куча настроек), то лучше её запросить один раз и хранить на клиенте, периодически обновляя. Это ж надо логику какую-то прописать. Периодическое обновление! Я ещё понимаю, если справочник ну очень редкоизменяемый, ну прямо совсем редко. Ещё надо заметить, что не совсем тривиальная задача сделать запрос, который подтянет данные с сервака и объединит их с теми, которые уже на клиенте. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:11 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
KreatorXXI DmSer +1 Если таблица справочная (особенно если в ней хранится куча настроек), то лучше её запросить один раз и хранить на клиенте, периодически обновляя. Это ж надо логику какую-то прописать. Периодическое обновление! Я ещё понимаю, если справочник ну очень редкоизменяемый, ну прямо совсем редко. Ещё надо заметить, что не совсем тривиальная задача сделать запрос, который подтянет данные с сервака и объединит их с теми, которые уже на клиенте. pastorУ меня сейчас приложения вместо чтения настроек и ресурсов по месту применения, читают все таблицу при подключении. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:18 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ёёёёё С FireBird 1.5 ничего сделать нельзя, он старый и всеми забыт. Нужно менять логику работы, не "запрос-ответ" маленькими порциями, а "запрос - много данных", например - с помощью сервера приложений. Нужно программировать. Из дома то нормальная скорость. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:37 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 ёёёёё С FireBird 1.5 ничего сделать нельзя, он старый и всеми забыт. Нужно менять логику работы, не "запрос-ответ" маленькими порциями, а "запрос - много данных", например - с помощью сервера приложений. Нужно программировать. Из дома то нормальная скорость. Значит, надо работать из дома. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:39 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
DmSer Если таблица справочная (особенно если в ней хранится куча настроек), то лучше её запросить один раз и хранить на клиенте, периодически обновляя. Как раз первый запрос, это загрузка на клиент SQL запросов, там их около 150 записей 5 BLOBов на запись. Домой грузит быстро, разница с локальной базой пару секунд, а в Контрору2 грузит минуту. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:44 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ёёёёё Значит, надо работать из дома. В том то и дело, что работать надо из Конторы2 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:46 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
кастуй БЛОБы к варчару. роундтрипов меньше будет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:47 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39, BLOB говоришь. Грузит быстро... Верится с трудом RRR39Домой грузит быстро, разница с локальной базой пару секунд, а в Контрору2 грузит минуту. сравни пинги ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:47 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Мимопроходящий кастуй БЛОБы к варчару. роундтрипов меньше будет. В блобах SQL запросы, они большие. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:51 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 В том то и дело, что работать надо из Конторы2 пинг то какой между ними? а то поди через пол шара ходишь в бд и удивляешься и да, блобы увеличивают кол-во раундтрипов в разы ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:53 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Симонов Денис сравни пинги Из дома 1-2 мс, даже странно, как по локалке. С Конторы2 73-77мс ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:53 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ЧТД ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:56 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Настроить подключение по RDP и забыть про пинги ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 15:00 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Дегтярев Евгений блобы увеличивают кол-во раундтрипов в разы А как можно ускорить передачу большого текста? Запросы не все большие, но все равно больших запросов достаточно много. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 15:01 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39Как раз первый запрос, это загрузка на клиент SQL запросов, там их около 150 записей 5 BLOBов на запись. Обломись, эта хрень быстро работать не будет никак. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 15:03 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39, нормально никак. Можно часть которая помещается в VARCHAR, а в BLOB отдавать NULL, те кто не помещает передавать как было. Но это надо клиентскую сторону переписывать. Кстати кому в голову пришло передавать запросы с сервера как BLOB? Это не очень умно. К слову в 1.5 запросы длиннее 64K всё равно нельзя было делать. У VARCHAR ограничение 32K не уж то длиннее запросы писали? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 15:11 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
хранить в блобе зипованные запросы? на клиенте распаковывать. глядишь зип утрамбуется и в варчар чарсет октетц. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 15:30 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Симонов Денис К слову в 1.5 запросы длиннее 64K всё равно нельзя было делать. У VARCHAR ограничение 32K не уж то длиннее запросы писали? Если там вдруг не-ascii, то уже 8К, что совсем не много. Хотя можно сделать поле octets, но имея в виду, что там utf8 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 15:30 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Василий 2, с чего бы это? WIN1251 однобайтовая кодировка. UTF-8 нормального во время 1.5 не было ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 15:35 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 Дегтярев Евгений блобы увеличивают кол-во раундтрипов в разы А как можно ускорить передачу большого текста? Запросы не все большие, но все равно больших запросов достаточно много. раньше было ZeBeDee. в ней можно было зиповать траффик. что есть сейчас - пес его знает. без надобности. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 15:39 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
pastor KreatorXXI пропущено... Это ж надо логику какую-то прописать. Периодическое обновление! Я ещё понимаю, если справочник ну очень редкоизменяемый, ну прямо совсем редко. Ещё надо заметить, что не совсем тривиальная задача сделать запрос, который подтянет данные с сервака и объединит их с теми, которые уже на клиенте. pastorУ меня сейчас приложения вместо чтения настроек и ресурсов по месту применения, читают все таблицу при подключении. Ну это же не справочники. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 15:51 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
pastor раньше было ZeBeDee. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 16:02 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Симонов Денис RRR39, нормально никак. Можно часть которая помещается в VARCHAR, а в BLOB отдавать NULL, те кто не помещает передавать как было. Но это надо клиентскую сторону переписывать. Кстати кому в голову пришло передавать запросы с сервера как BLOB? Это не очень умно. К слову в 1.5 запросы длиннее 64K всё равно нельзя было делать. У VARCHAR ограничение 32K не уж то длиннее запросы писали? Наоборот все отлично реализовано. Изначально клиентская прога была написана на Делфи. Все запросы хранятся в базе, и получаются клиентом по мере необходимости или при запуске. В итоге при изменении какого то запроса, ни чего на клиенте менять не надо. Вычисления производятся в хранимых процедурах. Клиент ни чего лишнего не получает и почти ни чего не считает. Перегнать Блобы в Варчач можно в процедуре, и запрашивать уже процедуру. Я просто не знал что Варчар можно сделать 32тыс символов. Надо попробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 16:02 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39Я просто не знал что Варчар можно сделать 32тыс символов. Не символов, а байт. Точнее 32765. Главное не превысить ещё и общее ограничение на размер сообщения (длины записи) в 64K ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 16:10 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39, У вас же эти запросы не меняются каждый день? Кешируйте их. Сохраните в файл. В при первом запуске скачайте хеши запросов в БД, и сравните с такими же в файлах. Ускорите загрузку на порядки ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 16:23 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Шавлюк Евгений RRR39, У вас же эти запросы не меняются каждый день? Кешируйте их. Сохраните в файл. В при первом запуске скачайте хеши запросов в БД, и сравните с такими же в файлах. Ускорите загрузку на порядки в 1.5 были хэши? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 16:30 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
pastor, ну UDF то всегда можно написать. Их и в 3.0 нормальных нет, слишком много коллизий даёт. Нормальные встроенные хэши появились только в 4.0. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 16:39 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
pastor, В rfunc есть md5sum, вполне подойдет md5 удобно тем, что на клиенте его можно посчитать, в отличии от встроенной функции ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 16:43 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Симонов Денис RRR39Я просто не знал что Варчар можно сделать 32тыс символов. Не символов, а байт. Точнее 32765. Главное не превысить ещё и общее ограничение на размер сообщения (длины записи) в 64K Спасибо что открыли мне глаза на Варчар. Скорость подготовки стала даже немного больше, зато скорость получения результата выросла раз в 30. Если честно, я в шоке. То же самое количество символов передается в 30 раз быстрее. Причем локально разницы ни какой нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 16:56 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Шавлюк Евгений RRR39, У вас же эти запросы не меняются каждый день? Кешируйте их. Сохраните в файл. В при первом запуске скачайте хеши запросов в БД, и сравните с такими же в файлах. Ускорите загрузку на порядки Да, уже подумывыл о таком варианте. Конечно без хэшей, а просто закинуть в Контору2 локальный комплект запросов. Но тут оказалось, что Варчар это целая куча символов и небольшая процедурка ускорила получение SQL запросов раз этак в 30. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 16:59 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 17:16 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
pastorтам есть TcpRemoteBufferSize Не поможет. Проблема в упрямом <латентность сети>*<количество round-trip>. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 18:08 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
pastor раньше было ZeBeDee. в ней можно было зиповать траффик. что есть сейчас - пес его знает. без надобности. ZeBeDee не уменьшает количество пакетов. Только шифрует и сжимает информацию в них. Мы используем zebedee исторически с точки зрения шифрования обмена по публичным каналам. Но. Одно "но" есть важное. У ZeBeDee есть шикарные логи, которые позволят увидеть то количество пакетов, которое прошло в обе стороны. И понять, как задержки сети (время ping) влияет на именно ваш клиент-серверный обмен. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 11:28 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
o_v_a У ZeBeDee есть шикарные логи, которые позволят увидеть то количество пакетов, которое прошло в обе стороны. И понять, как задержки сети (время ping) влияет на именно ваш клиент-серверный обмен. у всех наших приложений есть свои щикарные логи. и счетчики. поскольку несколько лет я всем кандидатам в качестве первого задания ставил задачу по улучшению записи логов и парсинга логов, то оно выросло во что-то похожее на r/syslog/d все xml и http пакеты у нас бегают с gzip. ждем того же и от firebird. может когда и дождемся продолжения сессии после кратковременного разрыва подключения. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 12:17 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Провел эксперемент с разными версиями Фаерберда 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 практически нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 22:19 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39Разницы между версиями FB практически нет. Дай угадаю: ты менял только сервер, а клиент был одним и тем же?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 23:04 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov RRR39Разницы между версиями FB практически нет. Дай угадаю: ты менял только сервер, а клиент был одним и тем же?.. Да. А что нужно поменять в клиенте? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 04:08 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Принудительное указание на стороне клиента на библиотеку fbclient.dll , дало результат. FB 1.5 - 33 сек. FB 2.1 - 13 сек. FB 3.0.5 - 12 сек. Теперь такой вопрос имеет ли смысл переходить на версию 3.0 или достаточно версии 2.1? Какие дополнительные плюшки дает 3.0 по сравнению с 2.1? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 07:08 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Клиента можно обновлять "до упора" и делать это ещё до того, как обновляется сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 07:38 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 имеет ли смысл переходить на версию 3.0 или достаточно версии 2.1? RRR39 Какие дополнительные плюшки дает 3.0 по сравнению с 2.1? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 08:38 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 Теперь такой вопрос имеет ли смысл переходить на версию 3.0 или достаточно версии 2.1? В чем смысл обновляться на не самую новую версию? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 08:58 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 09:49 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky в трешке можно включить зипование трафика WireCompression = true а я все поезда под откос пускаю ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 09:57 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
pastor а я все поезда под откос пускаю ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 11:14 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ёёёёё В чем смысл обновляться на не самую новую версию? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 11:17 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, у меня наоборот обновление 1.5->2.5 шло очень долго. А вот 2.5->3.0 хватило месяца. Хотя я 3.0 начинал тестировать ещё с альфы, может потому и так быстро получилось ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 11:25 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Симонов Денис Ivan_Pisarevsky, у меня наоборот обновление 1.5->2.5 шло очень долго. А вот 2.5->3.0 хватило месяца. Хотя я 3.0 начинал тестировать ещё с альфы, может потому и так быстро получилось Мы делаем зоопарк. Кто-то из разработчиков на Win7, кто-то на Win8, кто-то на Win10. У кого FB 2.5, у кого-то 3.0. У разработчиков может быть и больше одного компа - стационар + ноутбуки. Все упирается в клиентов. Толковые на техподдержке - более-менее. А мелочь без эникейщиков - туговато. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 11:46 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ёёёёё RRR39 Теперь такой вопрос имеет ли смысл переходить на версию 3.0 или достаточно версии 2.1? В чем смысл обновляться на не самую новую версию? Я знаю что для перехода на 2.1. мне надо взять в кавычки на "START" в процедурах и запросах. Я уже переводил одну такую базу на 2.1, знаю что этого достаточно и все будет работать. А при переходе на 3.0 может вылезти еще что ни будь, чего я не знаю. Соответственно надо определится, стоит ли овчинка выделки. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 17:21 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39, ну а как ты хотел быстро перейти без тестирования и доработки напильником? Так не бывает. Откуда уверенность что 2.1 всё OK? Успешный b/r не даёт гарантии полной работоспособности вашей программы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 17:25 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky pastor а я все поезда под откос пускаю Можно про зипование трафика поподробнее? И в чем ирония от товарища pastor? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 17:28 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 Ivan_Pisarevsky пропущено... Компрессия в канале на уровне ВПНа и компрессия внутри ФБ не совсем одно и то же, хотя и там и там зип архиватор. Можно про зипование трафика поподробнее? И в чем ирония от товарища pastor? при передаче длинных варчаров вместо 4к ноликов имеет смысл передать пяток байтов сжатой строки. шифрование в канале может сжимать еще и заголовки, и вообще делать MTU поболе и гонять огромными пакетами. и это, если при объявлении текстового блоба указать SEGMENT SIZE 1024 вместо умолчательных 80, уже таки будет профит. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 17:33 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Симонов Денис RRR39, ну а как ты хотел быстро перейти без тестирования и доработки напильником? Так не бывает. Откуда уверенность что 2.1 всё OK? Успешный b/r не даёт гарантии полной работоспособности вашей программы. У одного из клиентов база на 2.1. По ряду причин пришлось перевести, работает почти 10 лет. Конвертнуть эту базу в 3.0 получилось без проблем, собственно на них я и тестировал скорость FB 2.1 и FB 3.0.. Но вдруг потом что то вылезет. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 17:35 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
pastor и это, если при объявлении текстового блоба указать SEGMENT SIZE 1024 вместо умолчательных 80, уже таки будет профит. а ты? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 18:19 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 Можно про зипование трафика поподробнее? RRR39 И в чем ирония от товарища pastor? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 18:22 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
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 следующим образом:
Кроме этого, в ФБ 3 блобы, которые помещаются на страницу, всё равно записываются на secondary pages, и поэтому не "фрагментируют" записи, которые находятся на primary pages. И, размер сегмента блоба может быть не равен размеру страницы, и БОЛЬШЕ размера страницы. Например, страница БД 8к, а размер сегмента - 16к. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2020, 00:02 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Такой вопрос. Перевел базу на версию 3.0. Сначала под 1.5 в IBExpert выдернул метаданные и данные в скрипты. Потом под 3.0 скриптами создал базу и перекинул туда всю информацию. Запустил клиент, тупит. Нашел тупящую процедуру и то место в ней которое тупит. Простенький запрос выполняется 600мс. Делаю бэкап/ресторе и запрос перестает тупить, выполняется как обычно 0мс. Вопрос - почему тупило до Бэкап/Ресторе? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 19:08 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39, статистика не пересчитана небось ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 19:12 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39Потом под 3.0 скриптами создал базу и перекинул туда всю информацию. Ага, а индексы и констрейны, конечно же, создавал ещё до закачки данных. Это неправильная идея. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 19:44 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov RRR39Потом под 3.0 скриптами создал базу и перекинул туда всю информацию. Ага, а индексы и констрейны, конечно же, создавал ещё до закачки данных. Это неправильная идея. А разве индексы и связи создаются не на стадии создания таблицы? Ведь любая база в начальный момент времени пуста. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 20:09 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 ... А разве индексы и связи создаются не на стадии создания таблицы? Ведь любая база в начальный момент времени пуста. Индексы и констреинты как минимум тормозят операции модификации, то есть, процесс заливки. Более того, их наличие налагает ограничение на порядок заливки данных: например, нельзя занести детальные записи, пока не созданы их мастера. ... Что мешает перенеси момент создания индексов "на потом"? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 20:23 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ёёёёё RRR39 ... А разве индексы и связи создаются не на стадии создания таблицы? Ведь любая база в начальный момент времени пуста. Индексы и констреинты как минимум тормозят операции модификации, то есть, процесс заливки. Более того, их наличие налагает ограничение на порядок заливки данных: например, нельзя занести детальные записи, пока не созданы их мастера. ... Что мешает перенеси момент создания индексов "на потом"? Таблицы базы создавалась выгруженным скриптом. Править скрипт, что бы создать таблицы без индексов, что бы потом создавать заново индексы, это делать двойную работу. Загрузить данные в таблицы в правильной последовательности менее геморойная задача. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 21:35 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39, можно по всякому сделать. Например, если переносить данные ibpump-ом, то можно - после создания таблиц из скрипта сделать gbak -b / gbak -c -i то есть, не активировать индексы в конце рестора. Потом ибпампом перекинуть данные (на момент заливки он деактивирует все триггеры, потом активирует). Потом активировать все индексы - alter index ... active. Разве что надо сначала все ПК, а потом уже все ФК. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 21:45 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39Таблицы базы создавалась выгруженным скриптом. Править скрипт, что бы создать таблицы без индексов, что бы потом создавать заново индексы, это делать двойную работу. Тот, кто не имеет мастер-скрипта, должен страдать. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 22:05 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Кстати, (w)isql экстрактит скрипт создания метаданных разумно - сначала таблицы с РК, а все прочие констрайнты и индексы потом, альтерами-криейтами. Что удобно. Порезал скрипт на куски, выполнил первый, залили данные, погнал дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 22:07 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 Такой вопрос. Перевел базу на версию 3.0. Сначала под 1.5 в IBExpert выдернул метаданные и данные в скрипты. Потом под 3.0 скриптами создал базу и перекинул туда всю информацию. Запустил клиент, тупит. Нашел тупящую процедуру и то место в ней которое тупит. Простенький запрос выполняется 600мс. Делаю бэкап/ресторе и запрос перестает тупить, выполняется как обычно 0мс. Вопрос - почему тупило до Бэкап/Ресторе? Если создать индекс, то ему при отсутствии записей выставляется статистика "0". При добавлении записей статистика автоматически не пересчитывается, поэтому при построении плана запроса мог влезть неудачный индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 23:31 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
СПМ> Кстати, (w)isql экстрактит скрипт создания метаданных разумно - СПМ> сначала таблицы с РК, а все прочие констрайнты и индексы потом Так и IBE так же делает вроде. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 15:05 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
kdv RRR39, можно по всякому сделать. Например, если переносить данные ibpump-ом, то можно - после создания таблиц из скрипта сделать gbak -b / gbak -c -i то есть, не активировать индексы в конце рестора. Потом ибпампом перекинуть данные (на момент заливки он деактивирует все триггеры, потом активирует). Потом активировать все индексы - alter index ... active. Разве что надо сначала все ПК, а потом уже все ФК. Насколько я понимаю, ibpump переносит данные из базы в базу. Проблема в том, что FB 3.0 не открывает старую базу, матерится на версию. Поэтому я сначала выгружал данные в скрипты, потом останавливал FB 1.5, запускал FB 3.0 и загружал данные в новую базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 17:09 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Разница выполения одного и того же запроса в двух разных версиях базы. Выполнялся с целью проверить правильность переноса данных. 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%. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 17:52 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39Насколько я понимаю, ibpump переносит данные из базы в базу. Проблема в том, что FB 3.0 не открывает старую базу, матерится на версию. какая же это проблема? Например, 2 embedded. Или два ФБ на разных портах. Или один embedded, и один сервер. Или 2 компа с разными ФБ. Я сходу 4 варианта привел. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 18:17 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
kdv RRR39Насколько я понимаю, ibpump переносит данные из базы в базу. Проблема в том, что FB 3.0 не открывает старую базу, матерится на версию. какая же это проблема? Например, 2 embedded. Или два ФБ на разных портах. Или один embedded, и один сервер. Или 2 компа с разными ФБ. Я сходу 4 варианта привел. Возможно. Но мне более привычен перенос через скрипты. Если бы база была на несоколько гигабайт, тогда наверно пришлось бы что то другое изобретать, а так и скриптов хватило. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 18:29 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39Reads from disk to cache = 4 171 614 Fetches from cache = 822 377 863 За такие запросы надо руки отрывать. У тебя база на террабайт с миллиардом записей внутри? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 18:31 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 ёёёёё пропущено... Индексы и констреинты как минимум тормозят операции модификации, то есть, процесс заливки. Более того, их наличие налагает ограничение на порядок заливки данных: например, нельзя занести детальные записи, пока не созданы их мастера. ... Что мешает перенеси момент создания индексов "на потом"? Таблицы базы создавалась выгруженным скриптом. Править скрипт, что бы создать таблицы без индексов, что бы потом создавать заново индексы, это делать двойную работу. Загрузить данные в таблицы в правильной последовательности менее геморойная задача. Почему "выгруженный скрипт" создается не сразу так, как надо? Не ты его создаешь, что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 22:42 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Старый плюшевый мишка Кстати, (w)isql экстрактит скрипт создания метаданных разумно - сначала таблицы с РК, а все прочие констрайнты и индексы потом, альтерами-криейтами. Что удобно. Порезал скрипт на куски, выполнил первый, залили данные, погнал дальше. И IBExpert так. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 22:58 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Портянки пространных рассуждений, вместо того, чтобы после массированной заливки данных пересчитать статистику индексов. Статистику, кстати, стОит пересчитывать не только после первоначальной заливки данных. Тройка к статистике относится более трепетно и употребляет оную по назначению гораздо чаще и разумнее предыдущих версий. Не осилившие пипку в эксперте про пересчет статистики может сделать базе рэкап-рестор, тоже помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 23:16 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov RRR39Reads from disk to cache = 4 171 614 Fetches from cache = 822 377 863 За такие запросы надо руки отрывать. У тебя база на террабайт с миллиардом записей внутри? Нет, база <200 Мб. Запрос действительно геморойный, но так надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 05:13 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ёёёёё RRR39 пропущено... Таблицы базы создавалась выгруженным скриптом. Править скрипт, что бы создать таблицы без индексов, что бы потом создавать заново индексы, это делать двойную работу. Загрузить данные в таблицы в правильной последовательности менее геморойная задача. Почему "выгруженный скрипт" создается не сразу так, как надо? Не ты его создаешь, что ли? В IBExpert есть функция "Извлечь метаданные". Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет. Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 05:27 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 В IBExpert есть функция "Извлечь метаданные". Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет. Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные. Если при выгрузке метаданных указать что нужно извлекать в скрипт и собственно данные, в указанных таблицах, то создается скрипт в котором: - создаются таблицы - в них заливаются данные - на таблицы создаются ключи, индексы, и т.п. Затык может быть даже и на одной таблице, если она ссылается сама на себя. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
В таблице загружены данные IDID_PARENTNAME1NULLкорень2NULLкорень31ветка Уже сразу здесь есть требование что бы данные загружались именно в том порядке как указано, сначала корневые, потом ветки. Если поредактировать таблицу с перестройкой дерева и получить такую структуру: IDID_PARENTNAME13ветка2NULLкорень3NULLкорень То вставка в порядке ID уже будет невозможна. Т.е. поддержка возрастания ID ничего не гарантирует. В случаях посложнее может быть вообще ситуация что запись сначала вставляется, потом апдейтится с указанием ссылки. И может быть так что одними insert при живых констрейнтах ситуацию не воспроизвести. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 06:44 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 ёёёёё пропущено... Почему "выгруженный скрипт" создается не сразу так, как надо? Не ты его создаешь, что ли? В IBExpert есть функция "Извлечь метаданные". Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет. Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные. IBExpert как раз формирует скрипт так, что индексы и проч. создаются после заливки данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 09:01 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39Запрос действительно геморойный, но так надо. Ну если тебе надо чтобы база работала медленно, то о чём тогда этот топик? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 13:07 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, его мелкую базу в 200 МБайт вообще можно целиком в кеш 3.0 SS загнать. Я думаю его запрос ещё в 2 раза ускорится. Но запрос всё равно явно попахивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 13:12 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Симонов ДенисЯ думаю его запрос ещё в 2 раза ускорится. Не в 2, там, скорее, на порядки будет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 13:17 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ёёёёё RRR39 пропущено... В IBExpert есть функция "Извлечь метаданные". Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет. Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные. IBExpert как раз формирует скрипт так, что индексы и проч. создаются после заливки данных. Возможно. Я данные выгружал отдельно поэтому не знаю. У меня в скрипте сначала таблицы, уники, ключи, связи и индексы. Как я уже говорил, технически можно было закоментить ключи, уники, связи и прочее, и создать их позднеее, после заливки данных. Но тогда я не догадывался о возможной проблеме с индексами. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2020, 17:59 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 Возможно. Я данные выгружал отдельно поэтому не знаю. Ну так посмотри, ещё не поздно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2020, 18:20 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov RRR39Запрос действительно геморойный, но так надо. Ну если тебе надо чтобы база работала медленно, то о чём тогда этот топик? Там же написано в самом начале, вы не читали? Коротко поясню суть. Скорость получения данных из базы, при подключении через интернет от провайдера1, сильно отличается от скорости получения данных из той же самой базы при подключении по локальной сети или при подключении через интернет от провайдера2. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2020, 19:48 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ёёёёё RRR39 Возможно. Я данные выгружал отдельно поэтому не знаю. Ну так посмотри, ещё не поздно. А зачем такая портянка с метаданными и данными в одном скрипте? IBExpert скрипт такого размера даже не откроет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2020, 19:53 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39Коротко поясню суть. Ты лучше поясни смысл шутки, когда один запрос ты намеренно делаешь супер-тормозным потому что "так надо", а другой запрос тебе почему-то уже не "так надо". Что за двуличие и прочая ситуационная мораль? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2020, 20:39 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 ёёёёё пропущено... Ну так посмотри, ещё не поздно. А зачем такая портянка с метаданными и данными в одном скрипте? IBExpert скрипт такого размера даже не откроет. То есть, смотреть ты не станешь. Ну, ладно. Решение - на расстоянии вытянутого мизинца. Но тебе не нужно, чтобы работало, а нужно доказать, что кто-то другой виноват в том, что не работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2020, 22:35 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 А зачем такая портянка с метаданными и данными в одном скрипте? IBExpert скрипт такого размера даже не откроет. В редактор не загрузит, да. А выполнить - выполнит. И есть еще опция выгрузки в отдельные файлы. При этом получатся две части с метаданными (до и после вставки данных), кучка скриптов и lob-файлов с данными таблиц, и скрипт с набором INPUT в правильном порядке. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2020, 04:23 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov RRR39Коротко поясню суть. Ты лучше поясни смысл шутки, когда один запрос ты намеренно делаешь супер-тормозным потому что "так надо", а другой запрос тебе почему-то уже не "так надо". Что за двуличие и прочая ситуационная мораль? Потому что простое действие в программе с задержкой в 1-2сек видна невооруженным глазом и бесит пользователя. А тот запрос который выполнялся 30 минут, пользователями в таком объеме ни когда выполнялся. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2020, 19:41 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ёёёёё RRR39 пропущено... А зачем такая портянка с метаданными и данными в одном скрипте? IBExpert скрипт такого размера даже не откроет. То есть, смотреть ты не станешь. Ну, ладно. Решение - на расстоянии вытянутого мизинца. Но тебе не нужно, чтобы работало, а нужно доказать, что кто-то другой виноват в том, что не работает? Что смотреть? Я уже выгрузил и перелопатил метаданные, создал новую базу, перенес туда данные. Когда я все это делал, я не предполагал что будут тормоза с индексами. Получив тормоза, сделал бэкап/ресторе, которое вылечило тормоза. После чего спросил о возможных причинах, что бы знать на будущее. Ответ получил, к сведению принял, в будущем пригодится. Сейчас уже все сделано. Почему сделано именно так, я написал. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2020, 19:58 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
IBExpert RRR39 А зачем такая портянка с метаданными и данными в одном скрипте? IBExpert скрипт такого размера даже не откроет. В редактор не загрузит, да. А выполнить - выполнит. И есть еще опция выгрузки в отдельные файлы. При этом получатся две части с метаданными (до и после вставки данных), кучка скриптов и lob-файлов с данными таблиц, и скрипт с набором INPUT в правильном порядке. Я знаю что выполнит. Но перед выполнением скрипта, мне надо было переименовать все колонки и переменные процедур и тригеров с именем START. Собственно именно поэтому мне пришлось так заморачиваться с базой вместо того что бы сделать бэкап/ресторе. Производить поиск и замену в 200-300 мегабайтном файле или в нескольких файлах явно сложнее чем в полмегабайтном. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2020, 20:09 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 вместо того что бы сделать бэкап/ресторе. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 12:39 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky RRR39 вместо того что бы сделать бэкап/ресторе. Почему вместо? Что мешает сделать б/р сейчас? После всех манипуляций, все едино б/р надо делать регулярно, от "раз в месяц" до "раз в год",в зависимости от нагрузки на запись. Впрочем я повторяюсь, судя по упертости автору нужно не решение,а процесс. Ваши советы я читаю читаю, пробую или принимаю к сведению на будущее. Спасибо большое за помощь. Просто пересоздание базы, перенос данных и лечение возникших после переноса тормозов уже давно пройденный этап. Несмотря на то, что на FB 3.0 скорость выросла, в том числе и локально, все равно хотелось бы скорость увеличить. Судя по IBExpert больше всего времени сжирает подготовка запроса. При пинге 30мс до дома, запрос готовится 260-300мс, а выполняется 50-70мс. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 20:32 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 Судя по IBExpert больше всего времени сжирает подготовка запроса. При пинге 30мс до дома, запрос готовится 260-300мс, а выполняется 50-70мс. Кэшируй запросы. Меняешь параметры, а запрос тот же самый. Есть даже компоненты (FIB+), которые автоматически кэшируют их. На клиенте, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 22:26 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1560425]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
136ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
132ms |
get tp. blocked users: |
2ms |
others: | 268ms |
total: | 586ms |
0 / 0 |