powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Низкая скорость выполнения запросов после загрузки значительного объема данных
10 сообщений из 35, страница 2 из 2
Низкая скорость выполнения запросов после загрузки значительного объема данных
    #39575404
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий, зануда - человек который даже на РИТОРИЧЕСКИЙ вопрос отвечает вопросом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Низкая скорость выполнения запросов после загрузки значительного объема данных
    #39575408
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
palsчто мешает после только что выполненного создания индекса их правильно использовать (наличие статистики или еще что-то)?

вообще-то после создания индекса статистика для них наисвежайшая
...
Рейтинг: 0 / 0
Низкая скорость выполнения запросов после загрузки значительного объема данных
    #39575410
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийВасилий, зануда - человек который даже на РИТОРИЧЕСКИЙ вопрос отвечает вопросом.Диалог в трамвае:
- Прости, вы на следующей выходите?
- Да.
- А вы впереди спрашивали?
- Да.
- И что они вам ответили?
...
Рейтинг: 0 / 0
Низкая скорость выполнения запросов после загрузки значительного объема данных
    #39575438
pals
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovно вместо того, чтобы отфутболить на "планы и мониторинг в FB" и на "профилирование JVM" - начинаются общечеловеческие рассуждения о сборке мусора, незакрытых курсорах и т.п. тряхомудии.
Я бы даже понял простое "воспроизведи с отдельным FB-сервером, а потом думай дальше".

1. Профилированием приложения мы и занимаемся. Пока профилированием нас приводит к тому, что медленно выполняется метод executeQuery. Мы предполагаем, что далее запрос попадает к FB и он доступными ему средствами формирует resultset, который доступен далее для нас.

2. Относительно планов запроса. А возможно ли получить план в ходе выполнения приложения через JDBC? Не задумывался на этот счет. Надо посмотреть описание JDBC-драйвера. Но я уже говорил, что один и тот же алгоритм (включающий несколько запросов к БД) выполняется медленно (~1c на запись) в случае если в рамках этого же сеанса JVM прошла загрузка и быстро (~0.04) если загрузка шла в другом сеансе (возможно завершившемся несколько секунд назад). Т.к. тестовые данные одинаковые и классификатор одинаковый, то мы считаем что и запросы должны идти одинаковые. А значит, что велика вероятность что и планы у них будут одинаковые (если конечно статистика по индексам и таблицам к моменту выполнения запроса собралась). Может кстати в статистике собака зарыта?

3. Относительно FB-сервера. К сожалению заказчик просит чтобы приложение переносилось копированием к одной машины на другую, поэтому режим сервера нами не тестировался и не рассматривался вообще в рамках этого приложения. Даже если мы увидим, что в рамках сервера приложение работает быстрее, нам все равно надо добиться приемлимой проивзодительности в режиме Embbeded.
...
Рейтинг: 0 / 0
Низкая скорость выполнения запросов после загрузки значительного объема данных
    #39575444
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
palsОтносительно планов запроса. А возможно ли получить план в ходе выполнения приложения через JDBC?

не знаю что там можно средствами самого JDBC, но через трассировку точно можно план и множество других подробностей.
...
Рейтинг: 0 / 0
Низкая скорость выполнения запросов после загрузки значительного объема данных
    #39575466
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pals3. Относительно FB-сервера. К сожалению заказчик просит чтобы приложение переносилось копированием к одной машины на другуюНаличие отдельного сервера БД никак не препятствует копированию приложения, работающего с этой базой.
Не станете же вы делать какой-нибудь embedded facebook, чтобы задействовать его, скажем, REST API этого FB.
...
Рейтинг: 0 / 0
Низкая скорость выполнения запросов после загрузки значительного объема данных
    #39575474
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovвместо того, чтобы отфутболить на "планы и мониторинг в FB"См. мой первый ответ в этой ветке.
...
Рейтинг: 0 / 0
Низкая скорость выполнения запросов после загрузки значительного объема данных
    #39575481
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
palsМне кажется, что проблема либо на стороне FB, либо на стороне JDBC-драйвераНе нужно гадать. Нужно использовать имеющиеся инструменты для определения причин проблемы.
Повторить вот это ещё раз 21057248 ?

palsВозможно FB не успевает собрать статистику или заполнить какие-то свои внутренние структуры для полноценного использования индексов, а может есть какие-то особенности работы FB с индексами в режиме Embedded Server?Я могу придумать десяток разных вариантов, но - см. выше.

Я понимаю, что вы работаете с Java и имеете слабое понятие об Firebird, но нужно таки осваивать используемы инструмент. А там, глядишь, и понравится :)
...
Рейтинг: 0 / 0
Низкая скорость выполнения запросов после загрузки значительного объема данных
    #39575637
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
palsвыполняется медленно (~1c на запись) в случае если в рамках этого же сеанса JVM прошла загрузка и быстро (~0.04) если загрузка шла в другом сеансе (возможно завершившемся несколько секунд назад).принудительно перезапустить программу и забыть о проблеме?
...
Рейтинг: 0 / 0
Низкая скорость выполнения запросов после загрузки значительного объема данных
    #39575639
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pals...Проблема в том, что <...> скорость работы запросов к БД к таблицам <...>, снижается в несколько ДЕСЯТКОВ раз по сравнению со случаем, когда загрузка классификаторов производилась заранее (например при предыдущем запуске приложения).

Может у кого-нибудь есть мысли из-за чего может возникать такое падение производительности?
Было у меня на Delphi (не на Яве!) приложение, которое сильно тормозило при первом (после перезагрузки) коннекте, при этом сервер на той же машине, что и клиент. Второй и последующий коннекты - нормально.
Чем больше была база - тем дольше первый запуск. Как выяснилось, приложение при старте выполняло непотребные действия, время выполнения которых зависело от размера одной из табличек. При повторном запуске файл базы фактически уже был в кэше СУБД и ОС, и тормоза не ощущались.
В данном случае лекарством стал отказ от непотребных действий приложения при старте.
Но вполне работал и другой метод: вынесение сервера на другой комп, т.е., поддержание базы в "горячем" (когда данные в кэше) состоянии.

Конечно, с эмбеддед версией второй метод не сработает, но остается первый: оптимизируйте работу с базой. Исследуйте код, найдите узкие места, добавьте(или уберите) индексы и т.п. :)
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Низкая скорость выполнения запросов после загрузки значительного объема данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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