sql >> Base de Datos >  >> RDS >> Oracle

¿El conjunto de datos jdbc almacena todas las filas en la memoria jvm?

Eso depende. Diferentes controladores pueden comportarse de manera diferente y diferente ResultSet configuración puede comportarse de manera diferente.

Si tiene un CONCUR_READ_ONLY , FETCH_FORWARD , TYPE_FORWARD_ONLY ResultSet , es casi seguro que el controlador almacenará activamente en la memoria la cantidad de filas que corresponde a su tamaño de búsqueda (por supuesto, los datos de las filas anteriores permanecerán en la memoria durante un período de tiempo hasta que se recopilen como basura). Si tiene un TYPE_SCROLL_INSENSITIVE ResultSet , por otro lado, es muy probable que el controlador almacene todos los datos que se recuperaron en la memoria para permitirle desplazarse hacia atrás y hacia adelante a través de los datos. Esa no es la única forma posible de implementar este comportamiento, por lo que diferentes controladores (y diferentes versiones de controladores) pueden tener diferentes comportamientos, pero es la forma más simple y la forma en que se comportan la mayoría de los controladores que he encontrado.