Compartir vía


Tamaño del conjunto de filas

El tamaño del conjunto de filas que se va a usar depende de la aplicación. Las aplicaciones basadas en pantalla suelen seguir una de estas dos estrategias. La primera consiste en establecer el tamaño del conjunto de filas en el número de filas mostradas en la pantalla; si el usuario cambia el tamaño de la pantalla, la aplicación cambia el tamaño del conjunto de filas en consecuencia. El segundo consiste en establecer el tamaño del conjunto de filas en un número mayor, como 100, lo que reduce el número de llamadas al origen de datos. La aplicación se desplaza localmente dentro del conjunto de filas siempre que sea posible y recupera nuevas filas solo cuando se desplaza fuera del conjunto de filas.

Otras aplicaciones, como los informes, tienden a establecer el tamaño del conjunto de filas en el mayor número de filas que la aplicación puede controlar razonablemente, con un conjunto de filas mayor, la sobrecarga de red por fila a veces se reduce. Exactamente qué tamaño puede tener un conjunto de filas depende del tamaño de cada fila y de la cantidad de memoria disponible.

El tamaño del conjunto de filas se establece mediante una llamada a SQLSetStmtAttr con un argumento Attribute de SQL_ATTR_ROW_ARRAY_SIZE. La aplicación puede cambiar el tamaño del conjunto de filas, enlazar nuevos búferes de conjunto de filas (llamando a SQLBindCol o especificando un desplazamiento de enlace) incluso después de recuperar filas, o ambos. Las implicaciones de cambiar el tamaño del conjunto de filas dependen de la función:

  • SQLFetch y SQLFetchScroll usan el tamaño del conjunto de filas en el momento de la llamada para determinar cuántas filas se van a recuperar. Sin embargo, SQLFetchScroll con fetchOrientation de SQL_FETCH_NEXT incrementa el cursor en función del conjunto de filas de la recuperación anterior y, a continuación, recupera un conjunto de filas basado en el tamaño del conjunto de filas actual.

  • SQLSetPos usa el tamaño del conjunto de filas que está en vigor a partir de la llamada anterior a SQLFetch o SQLFetchScroll, ya que SQLSetPos funciona en un conjunto de filas que ya se ha establecido. SQLSetPos también recogerá el nuevo tamaño del conjunto de filas si se ha llamado a SQLBulkOperations después de cambiar el tamaño del conjunto de filas.

  • SQLBulkOperations usa el tamaño del conjunto de filas en vigor en el momento de la llamada, ya que realiza operaciones en una tabla independiente de cualquier conjunto de filas capturado.