День добрый.
Меня давно мучает один вопрос, решил задать его на форуме.
Используемая конфигурация:
Сервер - Firebird 1.5.1 (сначала под Linux, теперь под Windows)
Клиент - Delphi приложение (FibPlus)
Транспорт - Zebedee
Запуская программу через DilaUp или GPRS отмечаю что даже запрос возвращающий пустой набор данных открывается долго и при этом обмен идет двусторонний (прием/передача) причем примерно в равных долях. Ту же ситуацию наблюдаю и в локальной сети. Т.е. траффик примерно в 2-3 раза больше реально передаваемых данных.
Предполагаю что именно из-за этого скорость работы по медленным каналам довольно низкая. Причем переход на 2-х процессорный сервер (Xeon) + 2Гб памяти особенно не улучшил ситуацию.
Что это может быть? Какие-то подтверждения пакетов или есть какая-то настройка чтобы изменить ситуацию?
Заранее благодарен
Трафик Firebird
Модератор: kdv
Re: Трафик Firebird
Все это не оптимальный вариант реализации транспортного протокола. Это есть в задачах на улучшение сервера. Пока с этим прийдется смириться, ZeBeDe вроде нормально поднимает скорость передачи. Если тебе критично попробуй использовать препарированные запросы, это тожу уменьшает трафик.Mikael писал(а):День добрый.
Меня давно мучает один вопрос, решил задать его на форуме.
....
Ту же ситуацию наблюдаю и в локальной сети. Т.е. траффик примерно в 2-3 раза больше реально передаваемых данных.
...
Что это может быть? Какие-то подтверждения пакетов или есть какая-то настройка чтобы изменить ситуацию?
Заранее благодарен
Ты на чем пишеш ? Могу порекомендовать использовать пул запросов, чтобы запрос повторный раз не препарировался. Или если у тебя запросы препарируются, то организуй повторное использование чтобы он освобождался только по закрытию приложения.Mikael писал(а):Спасибо за ответ. Запросы и так препарированные. Сам этот процесс и тормозит. Потом вроде бы немного лучше работает. Будем ждать новых версий сервера.
Re: Трафик Firebird
FIBPlus TpFIBDataSet по умолчанию при открытии запроса тянет большое кол-во разной инфо (структура таблиц, полей, default values, domains ets).Mikael писал(а):День добрый.
Запуская программу через DilaUp или GPRS отмечаю что даже запрос возвращающий пустой набор данных открывается долго и при этом обмен идет двусторонний (прием/передача) причем примерно в равных долях. Ту же ситуацию наблюдаю и в локальной сети. Т.е. траффик примерно в 2-3 раза больше реально передаваемых данных.
Что это может быть? Какие-то подтверждения пакетов или есть какая-то настройка чтобы изменить ситуацию?
Рулить этим можно (а в случае медленных каналов и обязательно НУЖНО) через DataSet->Options, DataSet->PrepareOptions. Возможно в последних фибах появилось что-то еще (у меня версия 5.2).
Более общий подход - включить монитор и потратив некоторое время понять, какие операции с компонентами грузят канал.