![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
EDBEngineError
Climber © (2006-10-09 06:37:00)Где фиксить EDBEngineError "Temporary table resourse limit"?.
Спасибо.
Игорь Шевченко (2006-11-09 22:35:00) [41]Petr V. Abramov © (09.11.06 18:47) [48]
Внешние таблицы тут не совсем. Мне как раз надо из Firebird выгрузить, причем, с неким преобразованием. Программкой оно проще всего, я не предполагал, что простое движение по ResultSet'у вызовет такие проблемы на больших объемах.
Petr V. Abramov (2006-11-09 18:47:00) [42]Игорь Шевченко © (07.11.06 13:41) [11]
Я б посмотрел в сторону внешних таблиц в FB, чтоб в корне зло пресечь.
Игорь Шевченко (2006-11-09 16:05:00) [43]sniknik © (09.11.06 15:46) [46]
Так сработало, спасибо. О результатах (if any) расскажу позже.
sniknik (2006-11-09 15:46:00) [44]> - The page cannot be found
понятно, это видимо изза перестройки сайта
а так?
ftp.prima.susu.ac.ru/pub/outgoing/IB/OLEDB_Prov/ibfree5.zip
Игорь Шевченко (2006-11-09 15:39:00) [45]Anatoly Podgoretsky © (09.11.06 15:33) [44]
Собственно, в эту сторону и посмотрел. Пока не глючит.
Anatoly Podgoretsky (2006-11-09 15:33:00) [46]> Игорь Шевченко (09.11.2006 15:04:40) [40]
Может надо смотреть в сторону dbExpress правда на него сильно ругаются, но как раз для указаной цели, однонаправленный, без кеширования. Конечно можно работать напрямую с сетевой библиотекой, но это явно мазохизм.
ANB (2006-11-09 15:31:00) [47]
> Игорь Шевченко © (09.11.06 15:04) [40]
ну так попробуй интербейзом. все нужные свойства и методы у компоненты есть.
Игорь Шевченко (2006-11-09 15:31:00) [48]sniknik © (09.11.06 15:22) [41]
> если будеш пробовать, то возьми по ссылке
http://www.zstyle.com.ua/files/ibfree5.zip- The page cannot be found
sniknik (2006-11-09 15:22:00) [49]> До ADO просто руки не дошли.
> Провайдер для Firebird где-то валяется, скачанный с IBPhoenix.
нет. если будеш пробовать, то возьми по ссылке, я в свое время тестил все что нашел (6-7 шт), этот подошел лучше всего. у остальных чтото да не то было. и хотя уже много времени пришло, у кого были глюки наверняка исправили, но без дополнительный тестов я бы не рисковал. гарантий не дам в общем. ;о)
> но читать хотелось бы максимально быстро, без двунаправленности
не проблема, есть такой режим, просто предлагал проверить в наихудшем для тебя варианте, уж если он потянет, то однонаправленный для него(ADO) будет вообще как семечки.
и еще, у меня получалось время передач данных (сумма времен выборка + запись. т.е. с проходом до конца рекордсета. а не просто открытие) быстрее именно в моем варианте (почему и пользуюсь), предположительно (по догадкам) потому что когда забирается весь рекордсет он архивируется (по другому не получается обьяснить... почему быстрее) в отличие от позаписьной передаче на серверном курсоре, но вот как оно поведет себя на обьемах когда и память и кеш кончились... не знаю, надо тестировать. (вобще, все надо тестировать на реальном... ;о))
> а в особенности с BLOB-полями.
данные BLOB-поля в рекордсете не представлены, только ссылки. при обращении скачиваются с сервера.
Игорь Шевченко (2006-11-09 15:04:00) [50]ANB © (09.11.06 12:59) [30]
Выгружать построчно, никаких гетерогенных запросов, только сами данные.
sniknik © (09.11.06 13:27) [37]
Anatoly Podgoretsky © (09.11.06 13:00) [31]
> Про АДО могу сказать, что пробовал выгружать 6 миллионов
> записей в двухнаправленый, локальный курсор, проблем у меня
> не было, правда и БЛОБ полей тоже. Попробуй, едиственная
> проблема найти правильный OLE DB провайдер для Интербейс,
> просто по этому поводу много наслушался нелестных слов.
>
До ADO просто руки не дошли.
Провайдер для Firebird где-то валяется, скачанный с IBPhoenix.
Идеальным вариантом, наверное была бы прямая работа с клиентской библиотекой Firebird, поскольку мне требуется двигаться по полученному Resultset'у только вперед, то, что прочитано, сохранять не надо, но читать хотелось бы максимально быстро, без двунаправленности, без сохранения результатов запроса в промежуточный файл, и т.д.
Но для идеального варианта, боюсь, придется много писать, а в особенности с BLOB-полями.
ANB (2006-11-09 13:46:00) [51]
> Записи короткие
байт 30 в сумме. Однако 10 000 000 * 30 = 300 метров (это без накладных расходов). Приложение как съело 10 метров, так и с ними работало. чуток тока дергалось после каждого лимона.
ANB (2006-11-09 13:44:00) [52]Прокачалось 10 лимонов записей. Записи короткие. Качалось долго (минут 15), но это все на локальном оракле + я выводил записи на экран. Проц был ужрат процентов на 90 (где то 50 ужел оракл и 40 - приложение). Память приложение практически не уело, из чего можно сделать вывод, что записи не кэшировались. FB по рукой нету, так бы на родных компонентах потренировался.
sniknik (2006-11-09 13:27:00) [53]ANB
размер записи? без этого тест смысла не имеет.
Игорь Шевченко © (09.11.06 12:48) [29]
> Единственное, до чего я не дошел - это до ADO
самое время попробовать. ;о)) может не дошел как раз до того что бы тебе подошло...
тебе даже писать ничего не надо, скачаешь указанный драйвер, установишь (простая регистрация сом обьекта), я тебе вышлю тестовую программку в ней создашь коннект к база и выполнишь запрос к проблемной таблице...
выполнится значит подходит, ошибка - нет, если не устроит скорость открытия но всетаки открывает значит можно использовать с дополнительными настройками по режиму открытия (у меня локальный/двунаправленный т.е. как я обычно использую)
> FieldByName
вот FieldByName я бы не рекомендовал в длинных циклах использовать, только до, для определения переменных TField, а в цикле уже их. дает небольшую экономию времени.
Anatoly Podgoretsky (2006-11-09 13:22:00) [54]> ANB (09.11.2006 13:09:34) [34]
Время тоже сообщи.
Для MS SQL 6 миллионов, несколько секунд, машина не то чтобы слабая, но и не мощная - 512 мб памяти. Сеть 100 мбит
ANB (2006-11-09 13:14:00) [55]второй лимон прошел. уел лишних 32Кб памяти. возможно из-за того, что я сворачивал/разворачивал окошко.
ANB (2006-11-09 13:09:00) [56]один лимон прошел. полет нормальный, память не жрет.
ANB (2006-11-09 13:05:00) [57]Накопал табличку на 10 лимонов записей. ща ее попробую качнуть
ANB (2006-11-09 13:02:00) [58]TSQLQuery 40 тыщ записей выгреб без напряга. Память практически не уел (во всяком случае она не елась при закачке).
ЗЫ. Мне тоже как то нужно было перекачать пару миллионов записей из оракла в ms sql с обработкой на клиенте. Сначала качал через TOracleDataSet. Он ужрал пройденными записями весь файл подкачки и отвалился таки из-за нехватки памяти. Поменял компонент и все заработало.
Anatoly Podgoretsky (2006-11-09 13:00:00) [59]> Игорь Шевченко (09.11.2006 12:48:29) [29]
Про АДО могу сказать, что пробовал выгружать 6 миллионов записей в двухнаправленый, локальный курсор, проблем у меня не было, правда и БЛОБ полей тоже. Попробуй, едиственная проблема найти правильный OLE DB провайдер для Интербейс, просто по этому поводу много наслушался нелестных слов.
ANB (2006-11-09 12:59:00) [60]
> Игорь Шевченко © (09.11.06 12:48) [29]
Выгружать построчно собираешься ? Или хочешь извратиться с гетерогенным запросом ?
Те компоненты, которые я нарисовал поддерживают методы навигации. Нету только редактирования. А TSQLQuery - однонаправленный (почему я и думаю, что он не кэширует все на клиента). Эта, очепятался я. Наследник он TDataSet.