Compartir a través de


Trabajo con instrucciones y conjuntos de resultados

Descargar controlador JDBC

Si trabaja con el Microsoft JDBC Driver para SQL Server y los objetos Statement y ResultSet que proporciona, hay varias técnicas que puede usar para mejorar el rendimiento y la confiabilidad de las aplicaciones.

Usar el objeto de instrucción correcto

Si usa uno de los objetos Statement del controlador JDBC, como SQLServerStatement, SQLServerPreparedStatement o SQLServerCallableStatement, asegúrese de que está usando el objeto correcto para el trabajo.

  • Si no tiene parámetros OUT, no necesita usar el objeto SQLServerCallableStatement. En su lugar, use el objeto SQLServerStatement o SQLServerPreparedStatement.
  • Si no va a ejecutar la instrucción más de una vez o no tiene parámetros IN u OUT, no necesita usar el objeto SQLServerCallableStatement o SQLServerPreparedStatement. En su lugar, use el objeto SQLServerStatement.

Usar la simultaneidad correcta para los objetos ResultSet

No solicite una simultaneidad actualizable si va a crear instrucciones que generan conjuntos de resultados a menos que desee actualizar los resultados. El modelo de cursor predeterminado de solo avance y solo lectura es el método más rápido para leer conjuntos de resultados pequeños.

Limitar el tamaño de los conjuntos de resultados

Considere la posibilidad de usar el método setMaxRows (o la sintaxis SET ROWCOUNT o SELECT TOP N SQL) para limitar el número de filas devueltas por conjuntos de resultados posiblemente grandes. Si es necesario administrar conjuntos de resultados grandes, considere la posibilidad de usar almacenamiento en búfer de respuesta adaptable configurando la propiedad de cadena de conexión responseBuffering=adaptive, que es el modo predeterminado. Este enfoque permite a la aplicación procesar conjuntos de resultados grandes sin requerir los cursores del lado del servidor, minimizando el uso de memoria de la aplicación. Para obtener más información, consulte Usar el almacenamiento en búfer adaptable.

Usar el tamaño de captura correcto

En el caso de los cursores de servidor de solo lectura, el inconveniente son los ciclos de ida y vuelta al servidor frente a la cantidad de memoria usada en el controlador. Para los cursores de servidor actualizables, el tamaño de captura también influye en la sensibilidad del conjunto de resultados frente a los cambios y en la simultaneidad en el servidor. Las actualizaciones de las filas en el búfer de captura actual no son visibles hasta que se genera un método refreshRow explícito o hasta que el cursor sale del búfer de recuperación. Los búferes de captura grandes ofrecen un mayor rendimiento (menos ciclos de ida y vuelta del servidor), pero son menos sensibles a los cambios y reducen la simultaneidad del servidor si se usa CONCUR_SS_SCROLL_LOCKS (1009). Para obtener el máximo nivel de sensibilidad a los cambios, use un tamaño de captura de 1. Pero esta configuración implica un recorrido de ida y vuelta al servidor para cada fila recuperada.

Usar secuencias para parámetros IN grandes

Use secuencias o BLOB y CLOB materializados de forma incremental para controlar la actualización de valores de columnas grandes o el envío de parámetros IN grandes. El controlador JDBC "fragmenta" estos tipos en el servidor en varios recorridos de ida y vuelta, lo que permite establecer y actualizar valores mayores que los que puede contener la memoria.

Consulte también

Mejora del rendimiento y la confiabilidad con el controlador JDBC