Que es un cursor y para que sirve

 Ahora puedes ver nuestros vídeos cortos acerca del lenguaje SQL

Casa en Chatou - Maurice Vlaminck

Casa en Chatou – Maurice Vlaminck

Dentro de la shared pool, cada sentencia SQL es parseada y almacenada en lo que se conoce como “area de contexto” o “cursor”. Cada cursor contiene la siguiente informacion:

  • la sentencia parseada
  • el plan de ejecucion
  • una lista de objetos referenciados

Si dos usuarios ejecutan la misma sentencia SQL, entonces utilizaran el mismo cursor. La sentencia sera reparseada si la representacion en la shared pool esta invalidada. Las representaciones se invalidan cuando, por ejemplo, se ejecuta una sentencia DDL (por ejemplo “ALTER TABLE”) sobre alguno de los objetos de la sentencia del cursor.

 

About these ads

6 comentarios

  1. una duda que tengo es que tengo un procedimiento almacenado que devuelve un cursor y por mas que le haga un for llamando al procedimiento me lo parsea siempre. El mismo es abierno del forma

    open cursor for
    select *
    from tabla

    y luego busco en el v$sqlarea y para esta consulta el parse_calls = executions , me ayudaria mucho saber porque la parsea si esta en un proc almacenado

    • Hola Esteban,

      Las etapas de procesamiento de una sentencia SQL son las mismas independientemente de si la sentencia esta en un procedimiento almacenado o fuera de el.

      Espero haber respondido a tu duda.

      Un saludo,
      Fernando.

      • gracias por responder , pero a lo que me refiero es que el cursor de parsea lo mismo o sea no se comparte , pero si lo abro de la forma cursor is (select c1 from tabla) y esta dentro de un for me lo parsea una vez y lo ejecuta muchas , esto viendo las columnas executions y parse_calls de la vista v$sqlarea. No se porque cuando hago lo mismo pero con un cursor por referencia me lo parsea siempre.

  2. Hola Fer soy nuevo en Oracle y quisiera saber que es o como se define el Parseo o sentencia Parseada

    Es como una sentencia que es almacenada y la detecta o reutiliza en el shared pool?

    Gracias

  3. habla mucho del SQL

  4. pueden dar mas imformacion para mi tare que necesito pe oe


Comments RSS TrackBack Identifier URI

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.