powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Данные из clob посредством odp.net
5 сообщений из 5, страница 1 из 1
Данные из clob посредством odp.net
    #39858378
UVG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UVG
Гость
Доброе время суток.

С Oracle практически не знаком.Для одной разовой задачи приходится получать данные типа SDO_Geometry в приложении на .net.
SDO_Geometry преобразуется в Wkt, т.к. непосредственного аналога SDO_Geometry в odp.net я не нашёл.
В сети есть кастомные объекты, чтобы SDO_Geometry можно было получить через odp.net, но этим пока не занимались.
Вопрос в производительности получения данных типа CLOB/BLOB.
Сам запрос выполняется сервером достаточно быстро (заметно меньше секунды).
А вот получить данные на клиенте с помощью OracleDataReader (сборка Oracle.ManagedDataAccess.dll) ,быстро не получается.
Вернее, чтение данных типа number , varchar2 и т.д. и т.п. (не CLOB/BLOB) происходит приемлемое время, а вот CLOB/BLOB безумно тормозят.
Данные такие: примерно 50000 записей. Получаем только id (number) и shape (SDO_Geometry).Общий объём данных порядка 150мб
Такой же объём данных (не записей, а именно объём данных) составленный из varchar2 читается в разы быстрее (clob-ы могут читаться до нескольких минут, а "простые" данные-несколько секунд).
Попытки прочитать CLOB осуществлялись разными методами класса OracleDataReader (Например: GetOracleClob,GetTextReader). Пытались поменять FetchSize.
Сами функции (например GetOracleClob) отрабатывают быстро, но они, похоже, не читают тело clob, а скорее, только адрес и далее если читать сам clob, то всё проседает.
Аналогичные данные, но на PostgreSql, на тех же самых каналах читаются в разы быстрее.
На Oracle более-менее приемлемую производительность чтения данных удалось получить только преобразуя данные в xml , с группировкой по 5 тыщ, тогда происходит меньше итераций чтения и всё более-менее работает, а запрос на сервере, повторюсь, работает быстро.
Не подскажите , что можно попробовать для увеличения производительности чтения CLOB/Blob?
...
Рейтинг: 0 / 0
Данные из clob посредством odp.net
    #39858675
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UVGПопытки прочитать CLOB осуществлялись разными методами класса OracleDataReader (Например: GetOracleClob,GetTextReader).
...
Не подскажите , что можно попробовать для увеличения производительности чтения CLOB/Blob?
Кошерная документация указывает, что надо использовать:
для CLOB - переменную типа String (для 150 мб максимальной размерности хватит с избытком для любой кодировки) и метод GetString;
для BLOB - массив byte[] и метод GetBytes (заполнение в цикле)

см. пример кода и подробную документацию здесь
...
Рейтинг: 0 / 0
Данные из clob посредством odp.net
    #39859260
UVG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UVG
Гость
FogelКошерная документация указывает, что надо использовать:
для CLOB - переменную типа String (для 150 мб максимальной размерности хватит с избытком для любой кодировки) и метод GetString;


Спасибо.
Эти методы тоже рассматривались, но результат плачевный.
Возможно, есть какие-то опции для работы с clob-ами Oracle или, может быть, лучше использовать какой-нибудь другой провайдер?
Не обязательно для .net. Мы можем воспользоваться и чем-нибудь другим, а потом подцепить как сервис, возможно так буде быстрее.
Просто, хотелось бы , использовать технологию, которая, гарантированно, даёт приемлемые результаты.
Если кому приходится тянуть несколько десятков тысяч clob-ов за раз, то что используете?
...
Рейтинг: 0 / 0
Данные из clob посредством odp.net
    #39859272
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UVGчто используете?

OCI.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Данные из clob посредством odp.net
    #39859280
UVG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UVG
Гость
Dimitry SibiryakovUVGчто используете?

OCI.


Спасибо, попробуем.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Данные из clob посредством odp.net
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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