miércoles, 5 de abril de 2017

2.1.1 Estructura de memoria y procesos de la instancia (RESUMEN)

2.1.1 Estructura de memoria y procesos de la instancia

 DBMS
Definición
Es un sistema robusto que es capaz de emplear algoritmos de almacenamiento y recuperación de información para poder implementar un modelo de datos de manera física garantizando que todas las transacciones que se realizan con respecto a dichos datos sean "ácidas" (Atomicity, Consistency, Isolation, Duration).

Para que un DBMS pueda funcionar, primero se debe hacer una instancia de este. Esta instancia está compuesta principalmente de tres componentes:
·         Archivos
·         Estructuras de memoria.
·         Estructuras de procesos.

Cada una de estas estructuras se puede dividir a su vez en diferentes puntos.
Archivos
·         Control (ctl): almacenan información acerca de la estructura de archivos de la base.
·         Rollback (rbs): cuando se modifica el valor de alguna tupla en una transacción, los valores nuevos y anteriores se almacenan en un archivo, de modo que si ocurre algún error, se puede regresar (rollback) a un estado anterior.
·         Redo (rdo): bitácora de toda transacción, en muchos dbms incluye todo tipo de consulta incluyendo aquellas que no modifican los datos.
·         Datos (dbf): el tipo más común, almacena la información que es accesada en la base de datos.
·         Indices (dbf) (dbi): archivos hermanos de los datos para acceso rápido.
·         Temp (tmp): localidades en disco dedicadas a operaciones de ordenamiento o alguna actividad particular que requiera espacio temporal adicional.

Estructura de Memoria
Área Global del sistema (SGA): Es un grupo de estructuras de la memoria compartida que contiene datos e información de control de una instancia de una BD. Si varios usuarios se conectan de forma concurrente a la misma instancia, entonces los datos se comparten en el SGA, por lo que también se llama shared global area.
Estructura de Datos del SGA
·         Caché de los Buffers
·         Buffer del registro de Redo
·         El Pool compartido
·         Large Pool
·         Java Pool
·         Streams Pool
·         Caché de diccionario


Caché de los Buffers (Database Buffer Cache)
Contiene copias de los bloques de datos de lectura de las páginas. Todos los procesos de los usuarios conectados concurrentemente a la instancia comparten el acceso a ella. 
Buffer del registro del Rehacer (Redo Log Buffer)
Contiene información sobre cambios hechos a la base de datos, la cual se almacena en las ‘entradas redo’. Estas entradas contienen la información necesaria para reconstruir, o rehacer cambios hechos en la base de datos mediante las operaciones INSERT, UPDATE, DELETE, CREATE, ALTER o DROP y se usan para la recuperación de la base de datos, si fuera necesario.
El Pool Compartido
Es la parte del SGA que contiene la cache de biblioteca, la cache de diccionario, los buffers para los mensajes de ejecución paralela y las estructuras de control.

Large Pool
El administrador de la base de datos puede configurar un área de memoria opcional llamado large pool que proporciona grandes cantidades de memoria para asignar:
·         Memoria de la sesión para el servidor compartido y el Oracle XA interface (usado donde las transacciones interactúan con más de una base de datos)
·         Procesamiento de E/S
·         Copias de seguridad y operaciones de recuperación
Java Pool
Se usa en la memoria del servidor para almacenar todo el código y datos del JVM en las sesiones.
Streams Pool
En una única base de datos, se puede especificar que los flujos de memoria se asignen desde un pool en el SGA llamado Streams pool.
Cache de diccionario (Dictionary Cache)
El diccionario de datos es una colección de tablas y vistas de la base de datos que contienen información sobre la base de datos (sus estructuras y sus usuarios).
Oracle accede con frecuencia al diccionario de datos, por lo que tiene dos localizaciones especiales en memoria designadas a mantenerlo. Una de ellas es la caché del diccionario de datos, también conocida como la cache de fila por que contiene datos sobre las filas en vez de los buffers (los cuales contienen bloques de datos), y la otra es el cache de biblioteca.



Estructuras de Proceso
Procesos de usuario: Cada proceso de usuario representa la conexión de un usuario al servidor
Procesos de segundo plano: El servidor se vale de una serie de procesos que son el enlace entre las estructuras físicas y de memoria.
·        SMON
·        PMON
·        DBWR
·        LGWR
·        CKPT
·        ARCH
·        RECO
·        LCK

Monitor del sistema (System Monitor, SMON)
Es responsable de efectuar la recuperación de un error cuando se arranca la instancia a continuación de algún tipo de fallo.
Monitor de procesos (Process Monitor, PMON)
Es responsable de controlar los procesos de usuario que accedan a la base de datos y recuperados después de producirse algún error.
Escritor de base de datos (Database Writer, DBWR)
El proceso DBWR es responsable de escribir los bloques modificados (sucio) desde la caché de búfer del SGA a los archivos de datos situados en disco.
Escritor de registro (Log Writer, LGWR)
Es responsable de escribir los datos desde el búfer de registro al archivo de redo.
Punto de control (Checkpoint, CKPT)
Este proceso escribe en los ficheros de control los checkpoints. Estos puntos de sincronización son referencias al estado coherente de todos los ficheros de la BD en un instante determinado, en un punto de sincronización.

Archivador (Archiver, ARCH)
Es responsable de copiar los archivos de registro de rehacer en línea en el soporte de almacenamiento de archivo cuando dichos registros se llenan.
Recuperador (Recoverer, RECO)

Es responsable de efectuar las tareas de limpieza requeridas por las transacciones distribuidas que hayan fallado o que hayan sido suspendidas.

Ejercicio #2 Comandos ROLLBACK y COMMIT

Ingresamos a MySQL 5.7 Command Line Client – Unicode y posteriormente  ingresamos nuestra contraseña para poder empezar la práctica.

Creamos una Base de Datos llamada " ejercicio2 ".



 Ejecutamos el comando SHOW DATABASES para mostrar todas las Bases de Datos que tenemos.


Usamos el comando USE con el nombre de la base de datos ejercicio2, para poder utilizarla.


 Creamos una Tabla llamada" ejemplo2 ", y le insertamos los campos nombre, apellido y semestre para poder introducir datos .


Con el comando SHOW TABLES podemos ver las tablas que se encuentran en la base de datos (la que acabamos de crear).


Agregamos 3 registros

Posteriormente  con SELECT * FROM ejemplo2 verificamos que los registros se hayan guardado correctamente

Empezamos  a hacer uso de las TRANSACCIONES.
Primero ejecutamos el comando BEGIN y después insertamos otro registro. Por último, mostramos la tabla quedando de la siguiente forma:

Si en este momento ejecutamos un ROLLBACK, la transacción no será completada, y los cambios realizados sobre la tabla no se guardaran.


Repetimos el procedimiento anterior,  pero ahora vamos a ver lo que  ocurre si perdemos la conexión al servidor antes de que la transacción sea completada.


Al obtener  de nuevo la conexión, podemos ver que el registro no se insertó, ya que la transacción no fue completada.


repetimos la sentencia INSERT , pero haremos un COMMIT antes de perder la conexión al servidor al salir del monitor de MySQL.


Al hacer un COMMIT, la transacción es completada, y todas las sentencias SQL que han sido ejecutadas se guardan en la tabla de la base de datos. Con esto el registro que ingresamos antes de salir se guarda en la tabla.

En resumen el  Comando  ROLLBACK O Reversión, devuelve a la base de datos a algún estado previo. *Regresa los cambios hasta antes de agregar un registro. y el comando COMMIT Guarda todos los cambios de la transacción en curso. *Guarda todos los cambios, hasta el último registro insertado.

Referencia
http://programacion.net/articulo/transacciones_en_mysql_242

Ejercicio #1 Comandos ROLLBACK y COMMIT

 Ingresamos a MySQL 5.7 Command Line Client – Unicode e introducimos nuestra contraseña para poder empezar la práctica.




Para poder hacer la conexion a mysql desde el cmd debemos escribir el comando de mysql, luego escribir -u para determinar el usuario que es root y al final escribir -p para poder escribir la contraseña, si escribio todo bien debera haber hecho la conexion exitosamente

Crear una base de datos:

Para crear una base de datos hay que escribir el comando create seguido de lo que se creara en este caso una database y al ultimo el nombre

Crear tabla en una base de datos
Para crear una tabla en la base de datos primero se tiene que seleccionar la base de datos que se usara usando la instruccion use, una vez seleccionada la base de datos ya se podra crear la tabla con la instruccion  create table (nombre de la base de datos), aqui se abrira un parentesis que dira: el nombre del primer espacio en la tabla, el tipo de variable que se podran usar, el primero siempre sera la llave primaria asi que no puede ser nulo, el auto increment es opcional, hace que los valores en el id suban automaticamente, si quieres agregar otro espacio pon una coma, el nombre del espacio y su tipo de variable, VARCHAR necesita que ponga el limite de letras que se puede usar, en este caso (25).

Insertar valores a la tabla y mostrarlos
Para insertar valores a la tabla se necesita usar la instruccion de INSERT INTO (nombre de la tabla) VALUES(), en el parentesis se escribiran los valores que se van a agregar a la tabla, se debe de escribir primero el valor de la primary key a la que se le agregara, en este caso 1, luego entre comillas se escribe el valor que se agregara a la tabla, en este caso 'Isidro Vidal', una vez agregado se puede verificar usando la instruccion select, esta instruccion selecciona ciertos valores de la tabla y las muestra en el cmd, si pones SELECT * from tarea, agarrara todas las entradas que se hayan hecho y las mostrara

Instruccion Rollback
Se necesita usar un BEGIN para usar la instruccion rollback, inserta un valor a la tabla, y despues de que se inserte escribe la instruccion rollback, cuando muestre la base de datos otra vez el valor que se inserto antes del rollback ya no estara.

Instruccion Commit
La instruccion commit nos permite guardar cualquier cambio que se le haya hecho a una tabla sin perder los datos,  se necesita tambien empezar con un BEGIN, agrega los datos y despues usar la comicion COMMIT, se puede confirmar que se guardo al terminar la conexion y volver a entrar que el valor agregado aun sigue ahi






Comandos
 ROLLBACK O Reversión, devuelve a la base de datos a algún estado previo. *Regresa los cambios hasta antes de agregar un registro.

 COMMIT Guarda todos los cambios de la transacción en curso. *Guarda todos los cambios, hasta el último registro insertado.

martes, 4 de abril de 2017

Programa Final de la Unidad

;=====================================================================
 ; PROGRAMA : pe11_dt1.asm
 ; FUNCION : Pide tres datos hasta agotar la longitud de cada uno.
 ; REALIZADO POR : Yesenia Guerrero
 ; FECHA : martes 4 abril 2017
 ;=====================================================================

; DECLARACION DE CONSTANTES

 CR EQU 13 ; Constante CR (Retorno de carro)
 LF EQU 10 ; Constante LF (Salto de l?nea)
 TECLADO EQU 8
 IMPRIMIR EQU 9
 FIN EQU 4C00H
 DOS EQU 21H
 BIOS EQU 10H
 TAB EQU 09H
 BELL EQU 07H

 ; DECLARACION DEL SEGMENTO DE DATOS
    DATOS SEGMENT
            NOMBRE DB 30 DUP(32),'$'
            DIR    DB 30 DUP(32),'$'
            TLF    DB 15 DUP(32),'$'
            MENS1  DB  'NOMBRE : $'
            COLORES DB 11001111B ; Atributo de 'NOMBRE : $'
            MENS2   DB  'DIRECCION: $'
            MENS3   DB  'TELEFONO : $'
            ENTERR  DB CR,LF,'$'
    DATOS ENDS


        ; DECLARACION DEL SEGMENTO DE PILA
    PILA SEGMENT STACK
         DB 64 DUP('PILA')
    PILA ENDS

; DECLARACION DEL SEGMENTO DE CODIGO
    CODIGO SEGMENT
           ASSUME CS:CODIGO,DS:DATOS,SS:PILA
 INICIO:
        MOV AX,DATOS ; pone el inicio del segmento de datos en el registro AX
        MOV DS,AX ; pone el inicio dle segmento de datos en su registro correspondiente
                  ; DS, mediante el registro AX
                 
        CALL MODO_DE_VIDEO ; Establece modo de video
        MOV DX,OFFSET MENS1 ; Imprimir MENS1: 'NOMBRE: '
        CALL ESCRIBE
        MOV SI,OFFSET NOMBRE ; Direccion destino del nombre
        MOV CX,30 ; Longitud del nombre
        CALL PEDIR ; Solicitud de datos
        CALL SALTO_DE_LINEA
        MOV DX,OFFSET MENS2 ; Imprimir MENS2: 'DIRECCION: '
        CALL ESCRIBE
        MOV SI,OFFSET DIR ; Direccion destino de la direcci?n
        MOV CX,30 ; Longitud de la direccion
        CALL PEDIR ; Solicitud de datos
        CALL SALTO_DE_LINEA
        MOV DX,OFFSET MENS3 ; Imprimir MENS3 'TELEFONO: '
        CALL ESCRIBE
        MOV SI,OFFSET TLF ; Direccion destino del telefono
        MOV CX,15 ; Longitud del telefono
        CALL PEDIR ; Solicitud de datos
        MOV DX,OFFSET ENTERR ; Imprimir salto de linea 3 veces
        CALL ESCRIBE
        CALL ESCRIBE
        CALL ESCRIBE
        MOV DX,OFFSET NOMBRE ; Imprimir nombre capturado
        CALL ESCRIBE
        CALL SALTO_DE_LINEA
        MOV DX,OFFSET DIR ; Imprimir direccion capturado
        CALL ESCRIBE
        CALL SALTO_DE_LINEA
        MOV DX,OFFSET TLF ; Imprimir telefono capturado
        CALL ESCRIBE
        CALL SALTO_DE_LINEA
        CALL SALIR ; Fin del programa

 ;-----------------------------------------------------------------------
 ; Procedimiento PEDIR. Solicita un dato y lo guarda en la memoria
 ; Entrar en SI la direcci?n de memoria donde almacenar los datos
 ; Entrar en CX el n?mero de caracteres del dato
;-----------------------------------------------------------------------
 PEDIR PROC NEAR
        BUCLE:
            MOV AH,TECLADO ; Leer una tecla
            INT DOS
            MOV [SI],AL ; Guardar tecla en memoria
            MOV AH,2 ; Imprimir la tecla o caracter
            MOV DL,AL
            INT DOS
            INC SI ; Incrementar puntero de memoria
         LOOPNZ BUCLE ; Repetir hasta agotar la longitud (Loop While Not Zero)
         RET
  PEDIR ENDP

;-----------------------------------------------------------------------
; Procedimiento ESCRIBE. Escribe en pantalla una cadena
; Entrar en DX la direcci?n de la cadena o variable con cadena
;-----------------------------------------------------------------------
    ESCRIBE PROC NEAR
        MOV AH,IMPRIMIR ; Servicio del DOS para imprimir cadena
        INT DOS
        RET
    ESCRIBE ENDP

;PROCEDIMIENTO QUE IMPRIME SALTO DE LINEA
    SALTO_DE_LINEA PROC NEAR
        MOV DX,OFFSET ENTERR
        CALL ESCRIBE
        RET
    SALTO_DE_LINEA ENDP

; ESTABLECE MODO DE VIDEO
    MODO_DE_VIDEO PROC NEAR
        MOV AX,3 ; Establecer modo 80x25 car. 16 col.
        INT BIOS
        RET
    MODO_DE_VIDEO ENDP

 ; TERMINA PROGRAMA
    SALIR PROC NEAR
        MOV AX, FIN ;Mueve la instruccion para terminar el programa.
        INT DOS     ;Ejecuta la interrupci?n.
        RET
    SALIR ENDP

CODIGO ENDS
END INICIO

Arquitectura de SGBD

2.1.1 Estructura de memoria y procesos de la instancia

Arquitectura de un manejador de bases de datos (DBMS


Una base de datos en ejecución consta de 3 cosas: 

  1. Archivos
  2. memoria
  3. Procesos
Archivos 
  • Control (ctl): almacenan información acerca de la estructura de archivos de la base.
  • Rollback (rbs): cuando se modifica el valor de alguna tupla en una transacción, los valores nuevos y anteriores se almacenan en un archivo, de modo que si ocurre algún error, se puede regresar (rollback) a un estado anterior.
  • Redo (rdo): bitácora de toda transacción, en muchos dbms incluye todo tipo de consulta incluyendo aquellas que no modifican los datos.
  • Datos (dbf): el tipo más común, almacena la información que es accesada en la base de datos.
  • Indices (dbf) (dbi): archivos hermanos de los datos para acceso rápido.
  • Temp (tmp): localidades en disco dedicadas a operaciones de ordenamiento o alguna actividad particular que requiera espacio temporal adicional.
  
Memoria
  • Shared Global Area (SGA): es el área más grande de memoria y quizás el más importante
  • Shared Pool: es una caché que mejora el rendimiento ya que almacena parte del diccionario de datos y el parsing de algunas consultas en SQL.
  • Redo Log Buffer: contiene un registro de todas las transacciones dentro de la base, las cuales se almacenan en el respectivo archivo de Redo y en caso de siniestro se vuelven a ejecutar aquellos cambios que aún no se hayan reflejado en el archivo de datos (commit).
  • Large Pool: espacio adicional, generalmente usado en casos de multithreading y esclavos de I/O.
  • Java Pool: usado principalmente para almacenar objetos Java
    Procesos

Threading

System Monitor: despierta periódicamente y realiza algunas actividades entre las que se encuentran la recuperación de errores, recuperación de espacio libre en tablespaces y en segmentos temporales.

Process Monitor: limpia aquellos procesos que el usuario termina de manera anormal, verificando consistencias, liberación de recursos, bloqueos.

Database Writer: escribe bloques de datos modificados del buffer al disco, aquellas transacciones que llegan a un estado de commit.

Log Writer: escribe todo lo que se encuentra en el redo log buffer hacia el redo file

Checkpoint: sincroniza todo lo que se tenga en memoria, con sus correspondientes archivos en disco

  
Tipos de instancias de un DBMS

Online Transaction Processing (OLTP): compra/venta, telemarketing

  • Segmentos cortos de rollback
  • Shared Pool muy largo
  • Redo log suficiente
  • Indices en discos separados
  • Segmentos temporales pequeños

Decision Support Systems (DSS): datawarehouse

  • Segmentos largos de rollback
  • Shared Pool relativamente corto
  • Redo log suficiente
  • Indices apropiados
  • Segmentos largos de temporal
  • Parallel Query en la medida de lo posible (si está disponible)

instancia de una BD en Oracle



http://abdarrayan.blogspot.mx/ 


La arquitectura de un SGBD hace referencia al modelo interno de funcionamiento del sistema. Es decir a las estructuras internas/físicas que proporciona para el almacenamiento y su relación con las estructuras lógicas/conceptuales. Como es lógico, cada SGBD propone diferentes arquitecturas.

  estructuras lógicas de la base de datos

 En todas las bases de datos relacionales disponemos de estas estructuras lógicas para organizar la información:

Tablas. Compuestas de filas y columnas en las que se almacenan los datos relevantes de cada base de datos. La mayoría de SGBD usan distintos tipos de tablas, pero en general cuando se habla de tablas se habla del elemento lógico encargado de almacenar los datos.
Restricciones. Se definen al crear las tablas, pero se almacenan aparte. Están disponibles en el diccionario de datos y marcan las reglas que han de cumplir los datos para que se consideren válidos. 
Índices. Se trata de una lista ordenada de claves que permite acceder a los valores de una o más columnas de una tabla de forma veloz. 
Vistas. Son consultas almacenadas que nos permiten mostrar de forma personalizada los datos de una o varias tablas. 
Procedimientos y funciones. Código del lenguaje procedimental de la base de datos utilizado para ejecutar acciones sobre las tablas (incluidos los triggers). 

 estructuras físicas e internas de la base de datos


Al final todos los elementos lógicos se deben almacenar en archivos cuyo tamaño, dirección,... etc. debe de ser controlado por el DBA. En los distintos tipos de SGBD hay variaciones sobre las estructuras lógicas, en el caso de las físicas su diferencia puede ser total, lo que obliga a conocer muy bien la parte interna del sistema concreto que estemos utilizando.

Las estructuras internas permiten analizar un nivel intermedio entre estructuras lógicas (como las tablas) y las físicas (como los archivos). Por ejemplo, Oracle proporciona espacios de tabla o tablespaces para aglutinar distintos elementos lógicos con distintos elementos físicos a fin de optimizar el rendimiento de la base de datos.

 instancias de bases de datos

Los usuarios que deseen conectarse a una base de datos, se conectan a lo que se conoce como la instancia de la base de datos (del inglés instance).

En el modo más sencillo de trabajo, el usuario dispone de un software en su máquina local, por lo que se encuentra en el lado del cliente, capaz de conectar con el SGBD. En ese momento se lanza un proceso de usuario. Ese proceso deberá comunicarse (a través de las redes apropiadas) con el proceso de servidor, un programa lanzado en el lado del servidor que está permanentemente en ejecución.

El proceso de servidor comunica a su vez con la instancia de la base de datos, otro proceso en ejecución a través del cual se accede a la base de datos.

Ilustración 1,

 
En el caso de bases de datos distribuidas, habrá varias instancias de base de datos con capacidad de atender concurrentemente más usuarios.




 

instancia de Oracle

Es el conjunto de procesos del servidor que permiten el acceso a la base de datos. Es un conjunto de estructuras de datos y procesos en memoria. Está formado por: 
 
SGAArea global de sistema. Se trata de la zona de memoria común para todos los procesos de servidor, contien las siguientes estructuras de datos fundamentales:
  •  Buffer de caché de base de datos. Almacena bloques de datos leídos de la base de datos a fin de que las próximas consultas no necesiten acudir a disco y se las pueda servir de estos datos en la caché.
  • Buffer redo log. Estructura que almacena los datos anteriores y posteriores a cada instrucción y así facilitar tanto su anulación, como su realización en caso de problemas. 
  •  Large pool. Área de la memoria que proporciona espacio para los datos necesarios para realizar operaciones de backup y restauración, así como los datos de sesión y otros que permitan aliviar el trabajo de la instancia.
  • Shared pool. Consta de la caché del diccionario de datos y de la caché de instrucciones SQL, PL/SQL. De esa forma se acelera la ejecución de consultas e instrucciones que utilicen los mismos metadatos o bien que se traten de instrucciones parecidas a otras anteriormente ejecutadas. 
         - Cache Library.
           -Data Dictionary Cache. 
  • Java Pool. Sólo se usa si hemos instalado Java para agilizar el proceso de las instrucciones en ese lenguaje.



Procesos en segundo plano. Programas en ejecución que realizan las tareas fundamentales sonre la base de datos, entre ellos:

 DBWR. Escribe los datos del buffer de cache de la base de datos de la SGA a la base de datos en disco (a los archivos de datos). Eso no ocurre en todo momento, sino cuando se produce un evento de tipo checkpoint.
Un checkpoint ocurre cuando se ha consumido un tiempo determinado por el DBA, que se establece para que cada cierto tiempo los datos pasen a grabarse en ficheros de datos y así asegurarles en caso de problemas. El hecho de que esto se haga solo cada cierto tiempo (el tiempo establecido para el checkpoint) se debe a que, de otro modo, el funcionamiento sería muy lento si se accediera más a menudo al disco. 

LGWR. Es el proceso que genera escrituras secuenciales en los redo logs (archivos log de rehacer) que son los archivos que guardan la información necesaria para poder recuperar un estado anterior en los datos.
 Las instrucciones DML están limitadas por la velocidad de este proceso al guardar los datos. LGWR escribe desde el buffer del caché redo en el SGA hacia los archivos redo en disco. 
 CKPT. Proceso encargado de comunicar la llegada de un checkpoint, punto de control que ocurre cíclicamente (y que se puede modificar poe el DBA) tras el cual se deben de escribir los datos de memoria a los archivos de datos. 
 SMONSystem Monitor. Proceso encargado de monitorizar el sistema para que funcione correctamente tras un error grave. Además se encarga de la optimización del sistema mejorando el espacio en disco y elimando definitivamente (mediante rollbacks) datos irrecuperables. 
PMONProcess Monitor. Se encarga de la comunicación con la PGA y especialmente con el proceso servidor para manejar la conexión con el cliente, eliminado transacciones de usuarios erróneas (por desconexión por ejemplo) y liberando la memoria que se reservó para los usuarios. 
ARCn. Proceso de archivado de los archivos Redo. Sirve para que esos datos siempre estén disponibles. Sólo funciona en modo ARCHIVELOG de la base de datos, se explica más adelante. 

PGA
La Program Globasl Area o área global de programa, es la memoria que se reserva por cada usuario para almacenar los datos necesarios para la conexión de un usuario con la base de datos.
Cada conexión tiene su propia PGA con los datos a los que accede el proceso servidor. Entre los datos que almacena están:
La información sobre la sesión con el cliente 
El estado de procesamiento de la instrucción SQL actual 
Datos de caché para acelerar algunas instrucciones SQL (como por ejemplo índices temporales) 

proceso servidor y proceso cliente

El proceso cliente es el programa en la memoria de la máquina en la que el usuario ha conectado con Oracle. Este proceso se comunica con un proceso servidor que es lanzado cuando el cliente establece conexión con Oracle.

Puede haber un mismo proceso servidor para más de un cliente en caso de una configuración compartida de proceso servidor. Cuando el proceso cliente y el servidor establecen conexión, se crea la sesión de usuario, que es manejada por el proceso servidor. El proceso de usuario no puede acceder directamente a la base de datos.