Está usted en Indice > Maletin > Artículos > Cursores y Buffers
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Cursores y Buffers

Básicamente, un cursor es un conjunto de punteros a las filas devueltas por una consulta, la mayoría, son como un conjunto de resultados, excepto por que los datos reales generalmente permanecen en el servidor.

Un buffer es un depósito RAM en el lado del cliente donde se guardan los datos del conjunto de resultados de manera temporal hasta que pueden llevarse a otro lugar para su almacenamiento.

Las columnas de datos de una o varias filas se dice que son miembros del cursor si la cláusula WHERE de la consulta las incluye. Esta columnas, combinadas en filas lógicas se convierten en filas miembro del conjunto de resultados.

Por ejemplo:

SELECT
Nombre, Genero
FROM
Animales
WHERE
Edad < 10

Cuando se ejecuta esta consulta, el motor cliente empieza inmediatamente a seleccionar miembros para el conjunto de resultados. En este caso son todos los animales menores de diez años.

Si no es necesaria una ordenación, el SGDB pasa las primeras filas de este conjunto de resultados de vuelta a la estación de trabajo nada más capturarlas y después detiene el procesamiento hasta que la estación recupera las filas capturadas, una vez recuperadas el gestor de datos pasa más filas y así sucesivamente. Debido a este proceso, si otros usuarios están actualizando la base de datos, hay posibilidades que se añada otra fila que cumpla las condiciones del conjunto de resultados; en este caso la fila añadida pasa a ser miembro del conjunto y es recuperada por la estación de trabajo. También existe la posibilidad de la eliminación o modificación de una fila, en estos casos, si la fila no ha sido enviada a la estación de trabajo o no se envía o se envía modificada; pero siempre cabe la posibilidad de que la estación de trabajo haya leído una fila que ya no existe o que haya sido modificada por otro usuario. Estas actualizaciones no se incluirán en el conjunto de resultados si la estación de trabajo ha comenzado a procesar los resultados.

El proceso de relleno del cursor finaliza cuando el gestor de datos ha determinado cual es la última fila del conjunto de resultados y se considera completamente relleno cuando la estación de trabajo ha capturado la última fila, en este momento cuando se conoce el número de filas que componen el cursor. Por este motivo los métodos o propiedades que informan del número de filas devueltas o afectadas no son reales hasta que el cursos no se rellenado completamente.
Ubicación de los cursores

Como ya se ha comentado un cursor es un conjunto de punteros a un conjunto de resultados. Estos punteros pueden estar ubicados en el servidor o en la estación de trabajo, originando dos tipos de cursores, los cursores del lado del cliente y los cursores del lado del servidor. Pero no todos los gestores de datos permiten crear cursores en el lado del servidor, sólo se pueden crear con aquellos gestores que tengan comportamiento cliente / servidor.

Las ventajas e inconvenientes de cada tipo de cursor es muy variable y depende siempre de la explotación que se desee hacer de los datos, de la topología de la red y de los equipos empleados. En general los cursores en el lado del servidor reducen los tiempos de acceso a los datos y mejoran el desplazamiento por el conjunto de resultados, si embargo consumen más cantidad de recursos de servidor y de red.
Tipos de cursores

Conjuntos de resultados sin cursor
Con un conjunto de resultados sin cursor las filas de datos pasan al frontal para su procesamiento. Este el sistema más rápido para llevar los datos desde el servidor al cliente, pero no ofrece los beneficios del cursor, por que, si bien algunos son actualizables, a menudo no lo son y hay que controlar el proceso desde el frontal para controlar las modificaciones.
Cursores desplazables
Uno de los aspectos más costosos de la administración de los cursores es dar soporte a la capacidad de desplazamiento. Esta capacidad significa que, una vez ejecutada una consulta, un cursor desplazable permite la colocación en cualquier fila del conjunto de resultados. Estos métodos de reubicación son costosos en el sentido que consumen recursos del sistema. Para aumentar el rendimiento se aconseja limitar los cursores y seleccionar los no desplazables.
Cursores de sólo avance


Usuarios que han visto este tema también han visto...

- Estrategias para concursos donde tu presentas la propuesta
- Algunos consejos sobre navegación en Internet.
- La importancia creciente de la accesibilidad de sitios web
- ¿Tus vecinos te roban ancho de banda?...Castígalos
- Medios de acceso a una página oficial de un sitio web y sus posibles soluciones.


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 22-11-2008 a las 20:00:30