Я пытаюсь прочитать столбец clob из oracle в .Net и наблюдать за очень низкой производительностью и большим количеством сетевого трафика.Плохая производительность, получающая поле clob от Oracle в .Net
Я попытался использовать ODP + OCI, devArt + OCI для доступа к данным с одинаковыми результатами - для считывания 1000 строк в считывателе данных занимает около 20 секунд, и для каждой строки читается значение clob.
При проверке проводов звуковых дорожек выясняется, что каждый раз, когда я пытаюсь прочитать поле clob для одной строки в считывателе, есть дополнительные множественные пакеты tcp, отправленные между клиентом и сервером. Таким образом, для 1000 строк это становится в 1000 раз медленнее, чем при запросе только одной строки.
В то же время, если я запускаю тот же запрос в SQL Developer (который, как я полагаю, использует тонкий драйвер jdbc вместо oci), я получаю результаты мгновенно, включая значения clob. Он не пытается запросить clob для каждой строки - он забирает их всех за один раз!
Но я не вижу тонкого клиента для .net. Как я могу ускорить процесс? Пожалуйста помоги!
EDIT: Мой тип поля на самом деле XMLTYPE хранится как clob, а не настоящий clob. Использование getClobVal над ним улучшает результат на 50% до 10 секунд для 1000 строк. Но в то же время Sql Developer возвращает результаты мгновенно, а не через 10 секунд.
Вы когда-нибудь решают эту проблему? Вы зарегистрировали запрос поддержки у поставщика? –