Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подключение VFP8 к Interbase / 25 сообщений из 30, страница 1 из 2
16.11.2004, 11:14
    #32783730
Трехсотый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
У меня такая проблемка.
Есть база на Interbase, я соединяюсь через Firebird ODBC Driver
Делаю простую выборку базы в курсор. Табличка на 10 тыс. записей
Запрос идет около 10 сек. !!!
Аналогично делаю запрос в PARADOX 9 через BDE там курсор получается моментально!

Я так думаю в VFP медленно из-за преобразования форматов полей таблицы, конвертирования данных .

Может у кого есть опыт работы с ibase из VFP.
Может какие другие способы связи попробовать (ADO OLE DB ???)
...
Рейтинг: 0 / 0
16.11.2004, 11:22
    #32783759
Трехсотый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
У меня такая проблемка.
Есть база на Interbase, я соединяюсь через Firebird ODBC Driver
Делаю простую выборку базы в курсор. Табличка на 10 тыс. записей
Запрос идет около 10 сек. !!!
Аналогично делаю запрос в PARADOX 9 через BDE там курсор получается моментально!

Я так думаю в VFP медленно из-за преобразования форматов полей таблицы, конвертирования данных .

Может у кого есть опыт работы с ibase из VFP.
Может какие другие способы связи попробовать (ADO OLE DB ???)
...
Рейтинг: 0 / 0
16.11.2004, 12:09
    #32783907
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
для делфи парадокс и интербейс почти родные форматы поэтому и быстро
а вы не пробывали в бде из интербейса в дбф гнать
и вообще скорость формирования определяеться качеством одбс драйверов
если делфи делает такие дрова так что вы хотите
работайте на делфи с родными дровами а если нужен фокспро то может лучше скл_сервер ????
...
Рейтинг: 0 / 0
16.11.2004, 12:46
    #32784040
Трехсотый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
leafдля делфи парадокс и интербейс почти родные форматы поэтому и быстро
а вы не пробывали в бде из интербейса в дбф гнать
и вообще скорость формирования определяеться качеством одбс драйверов
если делфи делает такие дрова так что вы хотите
работайте на делфи с родными дровами а если нужен фокспро то может лучше скл_сервер ????

По моему вопрос стоял так- "работа из VFP c IBASE", то что на дельфе и парадоксе с родной sql ,быстрее - это и коню понятно.
...
Рейтинг: 0 / 0
16.11.2004, 13:15
    #32784189
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
ну не знаю только адо вам вряд ли поможет
может драйвер сменить
...
Рейтинг: 0 / 0
16.11.2004, 13:23
    #32784214
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
Пинал как-то Interbase c дравйвером от FireBird - все нормально бегало. Боюсь - вечный глюк с включенными Tracing в ODBC Sources Панели управления
...
Рейтинг: 0 / 0
16.11.2004, 14:22
    #32784421
Трехсотый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
piva вечный глюк с включенными Tracing в ODBC Sources Панели управления

Спасибо за отклики :)
А можно поподробнее что за глюки и как избавиться?
У меня на вкладке Tracing в ODBC вроде остановлен
...
Рейтинг: 0 / 0
16.11.2004, 14:27
    #32784437
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
Какой такой глюк - ну если Tracing выключен - значит не то. Да и нету у меня сейчас ни Interbase ни ODBC драйвера для него. Но точно помню - тормозов до такой степени (10 сек на 10 тыс записей ) не было
...
Рейтинг: 0 / 0
16.11.2004, 16:42
    #32784908
Трехсотый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
Может это я где-то туплю вот , что я делаю:

gnConnHandle = SQLCONNECT('mybase', '', '')
lCommand= 'select * from tabledata'
lResult = SQLEXEC(gnConnHandle, lCommand,"tabledata")

Во время выполнения сообщение выполняемого запроса 'Executing remote... Press ESC to cancel' после ~10 секунд получаю курсор

Типы полей IBASE используемые в табличке:
integer
numeric (15,2)
varchar(255)
date

после получения результата поле varchar(255) становиться memo, а date -> datetime
Мож с этим что связано?
Кстати я раньше пользовался утилиткой IBAdmin для получения dbf и по скорости конвертирования очень похожие результаты.
Я даже вижу колличество конвертируемых записей по 300-600 в секунду
Да , еше база на ibase с довольно сложной структурой и на эту табличку навешано куча связей, индексов, триггеров и т.п. Может это влияет?
...
Рейтинг: 0 / 0
16.11.2004, 16:45
    #32784922
vl2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
Сервер FB1.5 (локально) + VFP80 + ODBC Easysoft IB60
Cгенерил тестовую таблицу на 100000 записей (20 полей).
Выборка (через SP) 3-х полей:

Всех записей- 3 сек.
10000 записей- <1сек

(извиняюсь, засекал по секундомеру)
...
Рейтинг: 0 / 0
16.11.2004, 17:54
    #32785129
Трехсотый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
vl2000Сервер FB1.5 (локально) + VFP80 + ODBC Easysoft IB60
(извиняюсь, засекал по секундомеру)

А если сервак на другой машине? Сколько будет?
...
Рейтинг: 0 / 0
16.11.2004, 21:05
    #32785361
vl2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
На сервере проверю завтра на работе. Не думаю, что время будет сильно отличаться, а может и уменьшится :)
Я, кстати, сделал поле CHAR(500)- и на скорость выборки это не повлияло (из Фокса).
Запусти свой запрос напрямую на сервере (например из IBExpert). Посмотри, какое будет время выполнения запроса.
...
Рейтинг: 0 / 0
16.11.2004, 22:40
    #32785412
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
Hi Трехсотый!

Ни один SQL-сервер не рассчитан на то что его будут ТАК использовать. Какой
смысл вообще в сервере, если ты не работать его заставляешь, а банально
качать инфу туда-сюда? Если ты ТАК хочешь работать - переходи на технологию
файл-сервера.
В клиент-сервере принято выбирать лишь минимально необходимый набор записей.
Я НИКОГДА не поверю что тебе постоянно нужно вынимать оттуда по 10000
записей.
Теперь по поводу BDE - а с чего ты взял что по BDE сразу вынимаются все
10000 записей? Он как раз так не делает, а забирает их порциями, причём
весьма себе скромными! Например чтобы показать в гриде вмещающиеся там 10-20
записей. Ну а уж если его напрягут гнать все 10000 скажем в отчёт, или
просто в файл какой - думаю он будет ненамного быстрее работать, даже с
учётом "прямого" доступа к серверу.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
17.11.2004, 08:20
    #32785590
vl2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
Проверил на сервере.
10000 записей < 1 сек
100000 - примерно 2 сек.
Только у меня выборка организована по другому. На сервере- хранимая процедура. С клиента вызываю эту процедуру- она возвращает записи.
...
Рейтинг: 0 / 0
17.11.2004, 11:24
    #32786125
Трехсотый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
Кажется я плохо описал свою проблему.

vl2000 Запусти свой запрос напрямую на сервере (например из IBExpert). Посмотри, какое будет время выполнения запроса.

IBExpert это не VFP8
Меня интересует курсор полученный в VFP8

Я же говорю, в PARADOX 9 сделал алиас в BDE на ту же базу получил результат такого-же запроса моментально.

В IBADMIN эта таблица тоже открывается моментально, а тормоза начинаются при конвертировании ее в dbf. Это очень похоже на получение курсора в VFP8 через ODBC из табл. INTERBASE
...
Рейтинг: 0 / 0
17.11.2004, 12:08
    #32786318
Трехсотый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
Igor Korolyov
Hi Трехсотый!

Ни один SQL-сервер не рассчитан на то что его будут ТАК использовать. Какой
смысл вообще в сервере, если ты не работать его заставляешь, а банально
качать инфу туда-сюда? Если ты ТАК хочешь работать - переходи на технологию файл-сервера.
В клиент-сервере принято выбирать лишь минимально необходимый набор записей. Posted via ActualForum NNTP Server 1.1

Ну, во первых инфу качаю только "сюда" ;)
Данные нужны для построения отчета.
Причем все! данные!

Igor Korolyov
Я НИКОГДА не поверю что тебе постоянно нужно вынимать оттуда по 10000
записей.
Posted via ActualForum NNTP Server 1.1
Почему??? Формируешь отчет и выгребаешь все данные за год.
Это один вариант самый простой.
А теперь представь существуют 2 задачи одна на fox другая на IBASE, нужен анализ данных из этих задач, причем основное поле с кодом по которому строится отчет в одной задаче символьного типа в другой числового. Хочешь не хочешь придется выгружать всю табл. во временный курсор и приводить к общему типу данных , группировать объединять, суммировать и вываливать в общий отчет.
Могу придумать еще варианты....
Потом 10 000 записей это мелочь для простых запросов. Что доказывает работа даже через BDE из того же PARADOXA или DELPHI , не говоря о других способах доступа. И VFP их так же должен глотать, но в чем причина, я подозреваю в конвертации данных?
Igor Korolyov
Теперь по поводу BDE - а с чего ты взял что по BDE сразу вынимаются все
10000 записей? Он как раз так не делает, а забирает их порциями, причём
весьма себе скромными! Например чтобы показать в гриде вмещающиеся там 10-20 записей. Ну а уж если его напрягут гнать все 10000 скажем в отчёт, или
просто в файл какой - думаю он будет ненамного быстрее работать, даже с
учётом "прямого" доступа к серверу.
Posted via ActualForum NNTP Server 1.1

Так я и делаю для отчета запрос и в PARADOX табл ANSVER (наш курсор) получается моментально, и на диск сохраняется моментально.
...
Рейтинг: 0 / 0
17.11.2004, 12:14
    #32786348
vl2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
Ну если ты уверен, что проблема не в IB, то попробуй другой ODBC.
Например Easysoft или Gemini.
...
Рейтинг: 0 / 0
17.11.2004, 12:17
    #32786360
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
кажеться вы нам голову морочите что за отчет на 10000 строк кто его анализирует его даже в ексель бы не стал пихать не захотел бы связываться
что-то тут не так
может способ всетаки не тот а
...
Рейтинг: 0 / 0
17.11.2004, 12:24
    #32786385
vl2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
>leaf
Зачем же сразу "голову морочите"?
Трехсотый не говорил, что он ВСЕ 10000 строк выводит в отчет. Они нужны ДЛЯ построения отчета. По ним делается анализ и строится отчет. Причем этот анализ нельзя сделать на стороне SQL-серверf, т.к. в нем участвуют данные из другой программы(таблицы). Очень даже распространненный вариант.
...
Рейтинг: 0 / 0
17.11.2004, 13:07
    #32786534
Трехсотый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
vl2000Ну если ты уверен, что проблема не в IB, то попробуй другой ODBC.
Например Easysoft или Gemini.

Уже попробовал Gemini , таже ситуация.

В общем не стоит акцентировать внимание на 10 000 записей. Лучше узнать почему такая разница во времени при обработке совершенно одинаковых запросов разными СУБД.

Да забыл сказать:
В общем, дальше с полученным курсором VFP работает моментально, все остальные операции по преобразованию (гораздо трудоемкие) пролетают незаметно.
...
Рейтинг: 0 / 0
17.11.2004, 13:17
    #32786567
Трехсотый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
leafкажеться вы нам голову морочите что за отчет на 10000 строк кто его анализирует его даже в ексель бы не стал пихать не захотел бы связываться
что-то тут не так
может способ всетаки не тот а

Нет не морочу, в этом случае получается в итоге 2тыс. записей.
Код структуированный по нему просчитываются все промежуточные итоги, которые тоже попадают в отчет.

А есть отчеты импорт. в Excel и по 20 тыс. строк.
И поверьте, анализируют, еще как анализируют!!!!
...
Рейтинг: 0 / 0
17.11.2004, 13:24
    #32786588
vl2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
Посмотри какие настройки в TOOLS-OPTIONS-REMOTE DATA
У меня:
Record to fetch at a time стоит ALL
Maximum record to fetch стоит ALL
Asynchronous execution флаг сброшен.
...
Рейтинг: 0 / 0
17.11.2004, 13:47
    #32786663
Трехсотый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
vl2000
У меня:
Record to fetch at a time стоит ALL
Maximum record to fetch стоит ALL
Asynchronous execution флаг сброшен.

Сделал тоже самое результат тот же
...
Рейтинг: 0 / 0
17.11.2004, 13:54
    #32786693
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
ТрехсотыйУ меня такая проблемка.
Есть база на Interbase, я соединяюсь через Firebird ODBC Driver
Делаю простую выборку базы в курсор. Табличка на 10 тыс. записей
Запрос идет около 10 сек. !!!
Аналогично делаю запрос в PARADOX 9 через BDE там курсор получается моментально!

Я так думаю в VFP медленно из-за преобразования форматов полей таблицы, конвертирования данных .

Может у кого есть опыт работы с ibase из VFP.
Может какие другие способы связи попробовать (ADO OLE DB ???)

У меня была такая же проблема, только несколько с другой стороны:
мне надо было данные из Oracle передать в формат dbf при помощи C++Builder'a.
Так вот, подобное преобразование 8 тыс. записей через МS Jet OLEDB 4.0 и команду типа "insert into... values ..." заняло около 10 минут (!). Преобразование тех же записей при помощи "append" и библиотеки (еще ДОСовской) работающей с образом таблицы в памяти (типа как это делает Фокс) занимает менее 2 секунд (!).

Так что проблема все-таки в ODBC и конвертировании данных...
...
Рейтинг: 0 / 0
17.11.2004, 14:00
    #32786712
vl2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение VFP8 к Interbase
Ладно, попробуй передать на выполнение запрос:
lCommand= 'select my_field from tabledata'
где my_field - какое то поле в таблице (т.е. выбери только одно поле по которому нет преобразований, например ключевое).
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подключение VFP8 к Interbase / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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