Estoy tratando de leer una columna clob de Oracle en .Net y observar un rendimiento muy bajo y mucho tráfico de red.Pobre rendimiento al obtener el campo clob de Oracle en .Net
He intentado con ODP + OCI, devArt + OCI formas de acceder a los datos con los mismos resultados: toma aproximadamente 20 segundos obtener 1000 filas en un lector de datos y leer el valor inicial para cada fila.
Al examinar los rastros de wireshark, resulta que cada vez que trato de leer el campo clob de una sola fila en el lector, hay varios paquetes adicionales de tcp enviados entre el cliente y el servidor. Entonces, para 1000 filas, esto se vuelve 1000 veces más lento que si se consulta solo una fila.
Al mismo tiempo, si ejecuto la misma consulta en SQL Developer (que creo que utiliza el controlador jdbc delgado en lugar de oci), obtengo los resultados instantáneamente, incluidos los valores de clob. No intenta consultar clob para cada fila, ¡las obtiene todas de una vez!
Pero no veo un cliente ligero para .net. ¿Cómo puedo acelerar las cosas? ¡Por favor ayuda!
EDITAR: Mi tipo de campo es en realidad XMLTYPE almacenado como clob, no es un verdadero clob. El uso de getClobVal sobre él mejora el resultado en un 50% a 10 segundos para 1000 filas. Pero, al mismo tiempo, Sql Developer devuelve los resultados al instante, no en 10 segundos.
¿Alguna vez resolvió este problema? ¿Has registrado una solicitud de soporte con el proveedor? –