Страница 1 из 1

Медленная работа с БД через интернет из клиентского прилож.

Добавлено: 28 июн 2007, 07:42
connor74
Здравствуйте уважаемые форумчане,

Возникла следующая проблема:

появилась необходимость работы с БД (FireBird 2) чрез интернет. Пока база стояла в локальной сети - все было нормально, а теперь операции (INSERT/SELECT/UPDTE) из клиентского приложения (IBX) выполняются безбожно долго.

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

Добавлено: 28 июн 2007, 10:01
WildSery
Сжатие данных, широкий канал, жёсткая оптимизация пересылаемых туда-сюда данных, кэширование на клиенте. И "выбор ползателей" - терминалка.

Добавлено: 28 июн 2007, 11:53
connor74
WildSery писал(а):Сжатие данных, широкий канал, жёсткая оптимизация пересылаемых туда-сюда данных, кэширование на клиенте. И "выбор ползателей" - терминалка.
Прошу прощение но не все понял.

Значит что касается канала, кэширования изменений - понятно.

Что касается сжатия данных, жесткой оптимизации, и последнее - можно хотя бы чуточку поподробнее чтобы примерно понять куда плыть.

Добавлено: 28 июн 2007, 12:28
WildSery
У тебя вообще через как подключено - VPN? Сжатие данных - ZeBeDe кажись это делает.
Оптимизация - это я про запросы и работу клиента. Скажем, вместо select * from table делать только select first 5 * from table (сколько для начального показа надо), подгружать только необходимое. Никаких лишних данных или вычисляемых сервером полей (если есть возможность), только то, без чего не обойтись.
Терминальный сервер ресурсов сети ест мало, и это удобный способ работать через интернет на удалённом сервере.
Есть и ещё вариант - клиента делать с веб-мордой. Тебе не подойдёт, поскольку как я понял, уже готовое приложение, перепись отнимет много ресурсов.

Добавлено: 28 июн 2007, 19:22
connor74
WildSery писал(а):У тебя вообще через как подключено - VPN? Сжатие данных - ZeBeDe кажись это делает.
Оптимизация - это я про запросы и работу клиента. Скажем, вместо select * from table делать только select first 5 * from table (сколько для начального показа надо), подгружать только необходимое. Никаких лишних данных или вычисляемых сервером полей (если есть возможность), только то, без чего не обойтись.
Терминальный сервер ресурсов сети ест мало, и это удобный способ работать через интернет на удалённом сервере.
Есть и ещё вариант - клиента делать с веб-мордой. Тебе не подойдёт, поскольку как я понял, уже готовое приложение, перепись отнимет много ресурсов.
Совершенно верно VPN. Про ZeBeDe поглядим. Насчет веба конечно поздновато, приложение готово. Начет оптимизации подумаем. Но что самое интересное довольно большую нагрузку дают INSERT и UPDATE

Добавлено: 28 июн 2007, 20:38
WildSery
connor74 писал(а):довольно большую нагрузку дают INSERT и UPDATE
Рефреш грида? (перезапрос данных, т.е.)

Добавлено: 29 июн 2007, 08:23
connor74
WildSery писал(а):
connor74 писал(а):довольно большую нагрузку дают INSERT и UPDATE
Рефреш грида? (перезапрос данных, т.е.)
Ну вобщем то да, хотя попробую разделить запросы на вставку и рефреш меседжами шоб понять точно на че грешить.

И ещё хотел бы уточнить:
- может ли замедлять работу предположим транзакции с корявыми параметрами?
- может ли ускорить работу FIBPlus?

Добавлено: 29 июн 2007, 09:03
stix-s
connor74 писал(а): Ну вобщем то да, хотя попробую разделить запросы на вставку и рефреш меседжами шоб понять точно на че грешить.
Смотря еще какие данные вставляешь - может ты большие блобы гоняешь?
connor74 писал(а): И ещё хотел бы уточнить:
- может ли замедлять работу предположим транзакции с корявыми параметрами?
например с параметром wait
connor74 писал(а): - может ли ускорить работу FIBPlus?
не знаю, какой функционал в IBX сейчас, а FIBPlus позволяет рефрешить изменяемую строку без перезапроса всего набора

Добавлено: 29 июн 2007, 09:54
kdv
не знаю, какой функционал в IBX сейчас, а FIBPlus позволяет рефрешить изменяемую строку без перезапроса всего набора
этой фичей исходно обладал IBDataSet из FreeIBComponents, который их общий прародитель.