Vous êtes sur la page 1sur 96

Arquitectura de Base de Datos Oracle UNIVERSIDAD DE EL SALVADOR FACULTAD DE INGENIERA Y ARQUITECTURA ESCUELA DE INGENIERA DE SISTEMAS INFORMTICOS IMPLEMENTACIN DE BASES

DE DATOS CICLO II-2011

INVESTIGACIN BIBLIOGRFICA SOBRE ORACLE

CATEDRTICO ING. WILLIAM CASTELLANOS

GRUPO DE TRABAJO: 5

INTEGRANTES FLORES PEATE, MARVIN OMAR TOBAR LOPEZ, ERICK DOUGLAS VSQUEZ MARTNEZ, OSCAR ORLANDO FP05028 TL07001 VM07003

CIUDAD UNIVERSITARIA, 17 DE NOVIEMBRE DE 2011

Arquitectura de Base de Datos Oracle

INTRODUCCIN _______________________________________________________ 1 OBJETIVOS ___________________________________________________________ 2


Objetivo General ___________________________________________________________ 2 Objetivos Especficos ________________________________________________________ 2

ALCANCES ____________________________________________________________ 3 LIMITACIONES ________________________________________________________ 3 ARQUITECTURA INTERNA _______________________________________________ 4


Estructuras Lgicas de Almacenamiento ________________________________________ 4
Jerarqua de almacenamiento lgico _________________________________________________ 4 Administracin del Espacio Lgico ___________________________________________________ 5 Data Blocks _____________________________________________________________________ 7 Extents _______________________________________________________________________ 13 Segments _____________________________________________________________________ 16 Tablespaces____________________________________________________________________ 19

Estructuras Fsicas de Almacenamiento ________________________________________ 23


Mecanismos para almacenamiento de Bases de datos __________________________________ 23 Data File (Archivo de datos) _______________________________________________________ 24

ARQUITECTURA DEL LOG DE TRANSACCIONES (REDO LOG) ___________________ 26


Como est formado el redo log ______________________________________________ 26 Archivos redo log activos e inactivos __________________________________________ 26 Escritura en los archivos redo log (LGWR) ______________________________________ 26 Cambios de Log y nmeros de secuencia _______________________________________ 28 Archivos redo log Archivados ________________________________________________ 28
Multiplexacin de Archivos Redo Log ________________________________________________ 29

Respuesta a un fallo de Redo Log _____________________________________________ 30 Configuraciones legales e ilegales _____________________________________________ 30 Colocacin de miembros redo log en discos diferentes ____________________________ 31 Planificacin del tamao del archivo redo log ___________________________________ 32 Planificacin del tamao de bloque de los archivo redo log ________________________ 32 Seleccin del nmero de archivos redo log _____________________________________ 32

ARQUITECTURA DE OBJETOS ____________________________________________ 33


Esquemas ________________________________________________________________ 33 Tablas ___________________________________________________________________ 33

Arquitectura de Base de Datos Oracle


Orden de las columnas ___________________________________________________________ 35 Tabla de Compresin ____________________________________________________________ 35 Valores nulos __________________________________________________________________ 36 Valores por defecto _____________________________________________________________ 36 Tablas con particiones ___________________________________________________________ 36 Tablas anidadas ________________________________________________________________ 36 Tablas Temporales ______________________________________________________________ 37 Tablas externas _________________________________________________________________ 37

Vistas ___________________________________________________________________ 39
Dependencias y vistas____________________________________________________________ 39 Vista actualizable de unin (Updatable Join Views) _____________________________________ 40 Vistas de objetos________________________________________________________________ 40 Vistas en lnea __________________________________________________________________ 40 Vistas materializadas ____________________________________________________________ 40

ndices __________________________________________________________________ 41
ndices nicos y no nico _________________________________________________________ 43 ndices compuestos _____________________________________________________________ 43 ndices y claves _________________________________________________________________ 43 ndices y valores nulos ___________________________________________________________ 44

ndices basados en funciones ________________________________________________ 44


Formato de los bloques de ndice (Index Blocks) _______________________________________ 45 Estructura interna de los ndices ___________________________________________________ 45 Propiedades del ndice ___________________________________________________________ 46 ndice nico de escaneo __________________________________________________________ 47 ndice de Rango de escaneo _______________________________________________________ 47 Key Compression _______________________________________________________________ 48 ndice de clave inversa (Reverse key index) ___________________________________________ 48 ndices Bitmap (Bitmap indexes) ___________________________________________________ 49

Clsters__________________________________________________________________ 50 Hash Clusters _____________________________________________________________ 50 Dimensiones _____________________________________________________________ 51 Sinnimos (Synonyms) _____________________________________________________ 51

ARQUITECTURA DE PROCESAMIENTO DE CONSULTAS _______________________ 53


Uso del Optimizador _______________________________________________________ 53 Componentes del Optimizador _______________________________________________ 54
Transformador de la Consulta _____________________________________________________ 54 Estimador _____________________________________________________________________ 55 Generador del Plan ______________________________________________________________ 55

Caminos de Acceso ________________________________________________________ 55 Estadsticas del Optimizador _________________________________________________ 56


Sugerencias del Optimizador ______________________________________________________ 57

ARQUITECTURA DE SUBPROCESOS Y TAREAS _______________________________ 58

Arquitectura de Base de Datos Oracle


Mltiples procesos de Oracle Database Systems _________________________________ 58 Tipos de procesos _________________________________________________________ 59
Procesos de Usuario _____________________________________________________________ 60 Procesos del Servidor ____________________________________________________________ 61 Procesos en segundo plano _______________________________________________________ 62 Procesos esclavos _______________________________________________________________ 65

ARQUITECTURA DE ADMINISTRACIN DE MEMORIA ________________________ 66


System Global Area ________________________________________________________ 66
Automatic Shared Memory Management ____________________________________________ 68 Administracin de forma manual de los componentes SGA ______________________________ 69

Database Buffer Cache _____________________________________________________ 70


El algoritmo LRU y Anlisis Completo ________________________________________________ 71

Redo Log Buffer ___________________________________________________________ 71 Shared Pool ______________________________________________________________ 72 Library Cache _____________________________________________________________ 72 Diccionario de cach _______________________________________________________ 72 Asignacin y reutilizacin de la Memoria en la zona compartida ____________________ 73 Large Pool________________________________________________________________ 73 Java pool ________________________________________________________________ 74 Streams Pool _____________________________________________________________ 74 Control del Uso de la SGA de la Memoria_______________________________________ 74

Diagramas y documentacin de las bases de datos del sistema ________________ 76


Esquemas SYS y SYSTEM ____________________________________________________ 78 Catlogo de Datos _________________________________________________________ 78
Listado alfabtico de las vistas del sistema de Oracle ___________________________________ 81

CONCLUSIONES ______________________________________________________ 82 RECOMENDACIONES __________________________________________________ 83 REFERENCIAS BIBLIOGRFICAS __________________________________________ 84 ANEXOS ____________________________________________________________ 85


Clasificacin de los Tipos de Datos ____________________________________________ 85 Diagrama de la Arquitectura Oracle 11g________________________________________ 86 Comparaciones entre Oracle y SQLServer ______________________________________ 87
Address Space __________________________________________________________________ 87 Arquitectura Interna _____________________________________________________________ 87 Database ______________________________________________________________________ 88

GLOSARIO ___________________________________________________________ 89

Arquitectura de Base de Datos Oracle

INTRODUCCIN
El manejo de datos e informacin ha tenido una gran importancia a travs de los aos, debido a esto hoy en da contamos con un conjunto de herramientas como los RDBMS que han sido diseados para cumplir con el objetivo de almacenar los datos de una manera rpida y segura, pero para darle un uso adecuado y aprovechar cada una de las ventajas que nos ofrecen, no basta solo con saber cmo almacenar nuestros datos si no que debemos de saber con exactitud el funcionamiento que estos tienen y como administran la informacin, uno de los RDBMS ms potentes que existe en el mercado en la actualidad es ORACLE y en el presente documento se presenta una investigacin profunda acerca del funcionamiento y de cada una de las caractersticas que este posee, abarcando aspectos como la arquitectura interna donde se presenta en detalle cmo se realiza el almacenamiento de nuestros datos a travs de pginas, extensiones, archivos, grupo de archivos, etc. Adems de esto se presenta la forma en que Oracle controla cada uno de los cambios ocurridos en las distintas bases de datos a travs del log de transacciones. Otras caractersticas de importancia de Oracle que se presentan son la arquitectura de elementos fundamentales como los objetos que Oracle maneja, la arquitectura del procesamiento de consultas, la arquitectura de la administracin de memoria, y la arquitectura de sub procesos y tareas, as tambin se presentan diagramas y documentacin de las bases de datos master, model y tempdb que son las bases de datos del sistema de Oracle.

Pgina 1

Arquitectura de Base de Datos Oracle

OBJETIVOS
Objetivo General
Realizar una investigacin bibliogrfica sobre la arquitectura interna, log de transacciones, objetos, procesamiento de consultas, memoria, procesos y sub procesos y bases de datos del sistema del Gestor de Base de Datos Oracle.

Objetivos Especficos
Investigar el funcionamiento de la Base de Datos de Oracle. Conocer y comprender de mejor manera la arquitectura interna de la Base de Datos de Oracle. Comprender el funcionamiento de los elementos internos de la base de datos, como el uso de memoria y los procesos propios de la base de datos. Conocer las bases de datos propias del sistema, sus caractersticas y funcionamiento bsico. Comprender todos estos elementos y conceptos, para que de esta manera nos permita mejorar nuestras habilidades en la administracin de bases de datos Oracle. Reconocer cuales son los procesos ms importantes realizados por este gestor de bases de datos. Identificar los objetos con los cuales trabaja Oracle Database

Pgina 2

Arquitectura de Base de Datos Oracle

ALCANCES
El desarrollo de este proyecto bibliogrfico abarcar una investigacin sobre arquitectura interna, arquitectura del log de transacciones, arquitectura de objetos, arquitectura de procesamiento de consultas, arquitectura de procesos y subprocesos, diagramas y documentacin de las bases de datos del sistema del gestor de bases de datos Oracle.

LIMITACIONES
Informacin de diversas fuentes, puede atrasar la investigacin, o los cambios entre versiones de la base de datos. Recelo de algn tipo de informacin por parte de los creadores de la base de datos de Oracle, como lo son los esquemas del sistema. La informacin se encuentra en idioma ingls, la cual pudiera presentar inconsistencia al traducirla a nuestro lenguaje nativo.

Pgina 3

Arquitectura de Base de Datos Oracle

ARQUITECTURA INTERNA
Estructuras Lgicas de Almacenamiento
Oracle Database asigna un espacio lgico de todos los datos en la base de datos. Las unidades lgicas de espacio de asignacin de bases de datos: Data Blocks Extents Segments Tablaspaces A nivel fsico, los datos se almacenan en el disco en data files. Los datos en los data files se almacenan en bloques del sistema operativo. Diagrama entidad-relacin para el almacenamiento fsico y lgico.

Jerarqua de almacenamiento lgico


La figura muestra las relaciones ente los bloques de datos, extensiones y segmento en un tablespace. En este ejemplo, un segmento tiene dos extensiones almacenadas en diferentes archivos de datos.

Pgina 4

Arquitectura de Base de Datos Oracle

En el nivel ms bajo, Oracle Database almacena los datos en bloques de datos. Un bloque de datos lgico corresponde a un especfico nmero de bytes en el espacio fsico del disco, por ejemplo, 2 KB. Los bloques de datos son las unidades ms pequeas de almacenamiento que la base de datos de Oracle pues utilizar o gestionar. Una extensin es un conjunto de bloques de datos lgicamente contiguos localizados para el almacenamiento un tipo de informacin especfica. En la figura, la extensin de 24 KB tiene 12 bloque de datos, mientras que la extensin de 72 KB tiene 36 bloques de datos. Un segmento es un conjunto de extensiones utilizadas para un especfico objeto de base de datos, tal como una tabla. Por ejemplo, los datos para la tabla employees es almacenada en su propio segmento de datos, y cada ndice de dicha tabla es almacenado en su propio segmento de ndice. Cada segmento pertenece a uno y solo un tablespace. Por ejemplo, una extensin para un segmento podra estar en users01.dbf, mientas que otro es almacenado en users02.dbf.

Administracin del Espacio Lgico


Oracle Database debe utilizar administracin del espacio Lgico para rastrear y ubicar las extensiones en un tablespace. Cuando algn objeto de la base de datos necesita una extensin, la base de datos debe tener un mtodo que le permita buscarlo y asignarlo. De la misma manera, cuando un objeto de la base de datos ya no necesita una extensin, la base de datos debe tener un mtodo que le permita liberar la extensin. Oracle Database gestiona el espacio con dentro de un tablespace basado en el tipo con el que se ha creado. Se puede crear cualquiera de los siguientes tipos de tablespace Tablespaces gestionado localmente (por defecto) La base de datos utiliza mapa de bits en los tablespaces para administrar las extensiones. Dentro de un tablespace, la base de datos puede gestionar segmentos

Pgina 5

Arquitectura de Base de Datos Oracle


con automatic segment space management (ASSM) o manual segment space management (MSSM). Tablespaces gestionados con diccionario La base de datos gestionar el tablespace utilizando el diccionario de datos

Pgina 6

Arquitectura de Base de Datos Oracle Data Blocks


Oracle Database gestiona el almacenamiento lgico del espacio en los archivos de dato de una base de datos en unidades llamadas data blocks, tambin llamadas Oracle blocks o pages. Un data block es la unidad mnima de I/O de la base de datos.

Data Blocks y Operating System Blocks En el nivel fsico, los datos de base de datos se almacenan en los archivos del disco compuesto por bloques de sistema operativo. Un bloque del sistema operativo es la unidad mnima de datos que el sistema operativo puede leer o escribir. En contraste, un bloque de datos es una estructura lgica de almacenamiento cuyo tamao y estructura no son conocidos para el sistema operativo. La figura muestra que el funcionamiento de los bloques de sistema puede variar en tamao de los bloques de datos.

Cuando la base de datos solicita un bloque de datos, el sistema operativo convierte esta operacin en una solicitud de datos en el almacenamiento permanente. La separacin lgica de los bloques de datos a partir de bloques del sistema operativo tiene las siguientes implicaciones: Las aplicaciones no necesitan determinar las direcciones fsicas de los datos en el disco. Los datos de base de datos pueden ser particionados o reflejados en varios discos fsicos.

Tamao del Data Block Cada base de datos tiene un tamao de bloque de datos. El parmetro de inicializacin DB_BLOCK_SIZE, establece el tamao de bloque de datos para una base de datos cuando se crea. El tamao se establece para los tablespaces SYSTEM y SYSAUX y es el valor por defecto

Pgina 7

Arquitectura de Base de Datos Oracle


para los dems tablespaces. El tamao del bloque de datos no puede ser cambiado excepto si se vuelve a crear la base de datos. Si DB_BLOCK_SIZE no est definido, entonces el tamao por defecto del bloque de datos es especfico del sistema operativo. El tamao de los datos estndar de bloque para una base de datos es de 4 KB o 8 KB. Si el tamao es diferente para los bloques de datos y los bloques del sistema operativo, entonces el tamao de bloque de datos debe ser un mltiplo del tamao de bloque del sistema operativo.

Tamao de Tablespace Block Se puede crear tablespaces que tenga diferente tamao al especificado en DB_BLOCK_SIZE. Un data block de tamao no estndar puede ser til cuando se mueve un tablespace a una plataforma diferente.

Formato del Data Block Cada bloque de datos tiene un formato o estructura interna que permite a la base de datos dar seguimiento de los datos y el espacio libre en el bloque. Este formato es similar si el bloque de datos contiene tablas, ndices o tablas clster. La figura muestra el formato de un bloque de datos descomprimido.

Cabecera del Data Block Oracle Database usa la cabecera del bloque para gestionar el bloque. La cabecera del bloque no est disponible para almacenar datos. La cabecera del bloque incluye las siguientes partes: Encabezado del bloque: Esta parte contiene informacin general sobre el bloque de datos, incluida la direccin del disco y el tipo de segmento. Para los bloques que gestionan las transacciones, el encabezado del bloque contiene informacin de la transaccin activa e histrica. Una entrada de transaccin es requerida para cada transaccin que actualice el bloque. Oracle Database inicialmente reserva espacio en el encabezado del bloque para entradas de transaccin. En los bloques de datos asignados a los segmentos que

Pgina 8

Arquitectura de Base de Datos Oracle


soportan cambios transaccionales, el espacio libre tambin puede mantener entradas de transaccin cuando el espacio del encabezado se ha agotado. El espacio necesario para una entrada de transaccin depende del Sistema Operativo. Sin embargo las entradas de transaccin de la mayora de los sistemas operativos necesitan aproximadamente 23 bytes. Directorio de Tabla. Para una tabla de montn organizada, este directorio contiene meta datos de las tablas cuyos registros se guardan en este bloque. Varias tablas pueden almacenar las filas en el mismo bloque. Directorio de la fila. Para una tabla de montn organizada, este directorio describe la ubicacin de las filas de la parte de datos del bloque. Despus de que el espacio ha sido asignado en el directorio de la fila, la base de datos no recupera este espacio despus de la eliminacin de una fila. Por lo tanto, un bloque que est actualmente vaco, pero antes tena hasta 50 filas sigue teniendo100 bytes asignados para el directorio de la fila. La base de datos vuelve a utilizar este espacio slo cuando se agregan nuevas filas en el bloque. Algunas partes del encabezado del bloque tienen un tamao fijo, pero el tamao total es variable. En promedio, el tamao del encabezado de bloque vara entre 84 a 107 bytes.

Formato de Fila

La parte de datos de la fila del bloque contiene los datos reales, tales como una tabla o las entradas de ndice de clave. As como cada bloque de datos tiene un formato interno, cada fila tiene un formato de registro que permite a la base de datos rastrear los datos de la fila. Oracle almacena en la base de datos las filas como registros de longitud variable. Una fila se encuentra en una o ms piezas seguidas. Cada pieza tiene una fila de encabezado de fila y columna de datos.

Pgina 9

Arquitectura de Base de Datos Oracle

Row Header Oracle Database usa el encabezado de la fila para gestionar la fila almacenada en el bloque. El encabezado de li fila contiene la siguiente informacin: Columnas en la fila Piezas de la fila localizadas en otros bloques de datos Si la fila entera puede ser insertada dentro de un solo bloque de datos, entonces Oracle Database almacena la fila como una sola fila. Sin embargo, si toda la fila de datos no puede ser insertada en un solo bloque o una actualizacin hace que una fila existente supere el tamao del bloque, entonces la base de datos almacena la fila en mltiples piezas de la fila. Un bloque de datos usualmente contiene solo una pieza de fila por fila Llaves Clster para tablas clster Una fila completa contenida en un bloque contiene al menos 3 bytes de encabezado de fila.

Column Data Despus del encabezado de fila, la seccin de columna de datos almacena los datos actuales de la fila. La pieza de la fila usualmente almacena las columnas en el orden listado en la sentencia CREATE TABLE, pero este orden no es garantizado. Por ejemplo, columnas del tipo LONG so creados al final. Como se muestra en la figura anterior, para cada columna en una pieza de fila, Oracle Database almacena el tamao y el dato separadamente. El espacio necesario depende del tipo de dato. Si el tipo de datos de una columna es de tamao variable, entonces el espacio necesario para mantener los valores puede crecer y disminuir con cada actualizacin de los datos.

Pgina 10

Arquitectura de Base de Datos Oracle


Cada fila tiene un espacio en el directorio de la fila del encabezado del bloque. Este espacio indica el inicio de la fila.

Formato del Rowid Oracle Database utiliza un rowid para identificar de forma nica una fila. Internamente, el rowid es una estructura que tiene informacin que la base de datos necesita para acceder a una fila. Un rowid no es fsicamente almacenado en la base de datos, pero se infiere de los archivos y bloques en los que se almacenan los datos.

Gestin de espacio en los data blocks Como la base de datos llena un bloque de datos desde abajo hacia arriba, la cantidad de espacio libre entre las filas de datos y el encabezado del bloque disminuyen. Este espacio libre tambin se puede reducir durante las actualizaciones, como cuando se cambia un valor nulo final a un valor no nulo. La base de datos gestiona el espacio libre en el bloque de datos para optimizar el rendimiento y evitar el desperdicio de espacio.

Porcentaje de espacio libre en data blocks El parmetro PCTFREE es esencial en la forma en que la base de datos gestiona el espacio libre. Este parmetro SQL establece el porcentaje mnimo de un bloque de datos reservados como espacio libre de cambios a las filas existentes. Por lo tanto, PCTFREE es importante para prevenir la migracin de filas y evitar desperdicio de espacio.

Pgina 11

Arquitectura de Base de Datos Oracle


Optimization of Free Space in Data Blocks Mientras que el porcentaje de espacio disponible no puede ser menor que el especificado en PCTFREE, la cantidad de espacio disponible puede ser mayor. Las siguientes sentencias SQL pueden incrementar el espacio libre: Sentencias DELETE Sentencias UPDATE que, o bien actualice valores a valores ms pequeos o incremente los valores existentes y obligue una a la fila a migrar Sentencias INSERT en una tabla que utiliza compresin OLTP

Chained and Migrated Rows Oracle Database debe administrar filas que son demasiado grandes para caber en un solo bloque de datos: La fila es demasiado grande para caber en un solo bloque de datos cuando es insertada por primera vez. En el encadenamiento de fila, Oracle Database almacena los datos de la fila en una cadena de una o ms bloque de datos reservados para el segmento. El encadenamiento ocurre ms frecuentemente con columnas largas. Una fila que originalmente cabe en un bloque de datos es actualizada tal que la sumatoria del tamao de las filas incrementa, pero el espacio libre disponible es insuficiente para mantener la fila actualizada. En la migracin de filas, Oracle Database mueve la fila entera a un nuevo bloque de datos, asumiendo que la fila cabe en el nuevo bloque de datos. La pieza de la fila original de una fila migrada contiene un puntero al nuevo bloque. El rowid de una fila migrada no cambia con la migracin. Una fila puede contener ms de 255 columnas Oracle Database solo puede almacenar 255 columnas en una pieza de fila. As, si se inserta una fila dentro una tabla que tiene ms de 1000 columnas, entonces la base de datos crea 4 piezas de fila, tpicamente encadenada sobre mltiples bloques.

Pgina 12

Arquitectura de Base de Datos Oracle


Row Chaining

Row Migration

Extents
Una extensin es una unidad lgica de asignacin de espacio de almacenamiento de base de datos compuesta de bloque de datos contiguos. Los bloques de datos en un punto son lgicamente contiguos, pero pueden ser fsicamente hacia separados en el disco debido a la creacin de RAID y las implementaciones de sistemas de archivos.

Pgina 13

Arquitectura de Base de Datos Oracle


La asignacin de extensiones De manera predeterminada, la base de datos asigna una extensin inicial de un segmento de datos cuando el segmento se crea. Una extensin es siempre contenida en un archivo de datos. Aunque no hay datos aadidos al segmento, los bloques de datos en la medida inicial se reservan exclusivamente para este segmento. El primer bloque de datos de cada segmento contiene un directorio de las extensiones en el segmento. La figura muestra el grado inicial de un segmento de un archivo de datos que antes de contener datos.

Si la extensin inicial se completa, y necesita ms espacio, entonces la base de datos asigna automticamente un punto incremental para este segmento. Una extensin incremental es una medida posterior creada para el segmento. El algoritmo de asignacin depende de si el tablespace est gestionado localmente o administrado por diccionario. En el caso de gestin local, la base de datos busca en el mapa de bits de un archivo de datos de bloques adyacentes libres. Si el archivo de datos no tiene espacio suficiente, entonces la base de datos se ve en otro archivo de datos. Las extensiones de un segmento siempre estn en el mismo tablespace, pero pueden estar en diferentes archivos de datos. La figura muestra que la base de datos puede asignar extensiones de un segmento en cualquier archivo de datos en el espacio de tablas. Por ejemplo, el segmento puede asignar la extensin inicial en users01.dbf, asignar el primer incremento en users02.dbf, y asignar el siguiente en users01.dbf.

Pgina 14

Arquitectura de Base de Datos Oracle

Cancelacin de la asignacin de Extents En general, las extensiones de un segmento de usuario no regresan al tablespace a menos que se liberen utilizando un comando DROP. En Oracle Database 11g Release 2 (11.2.0.2), tambin se pueden liberar segmentos usando el paquete DBMS_SPACE_ADMIN. Por ejemplo, Si se eliminan todas las filas en una tabla, entonces la base de datos no pide el bloque de datos para que otros objetos en el tablespace lo utilicen.

Parmetros de Almacenamiento para los Extents Cada segmento es definido por parmetros de almacenamiento expresados en trminos de extensiones. Estos parmetros controlan como Oracle Database asigna el espacio disponible a un segmento

La configuracin del almacenamiento est determinada en la siguiente lista: 1. Clusula de almacenamiento del segmento 2. Clusula de almacenamiento del tablespace 3. Valor predeterminado de Oracle Database Un tablespace gestionado localmente puede tener extensiones con tamaos uniformes os extensiones de tamaos variables determinados automticamente por el sistema: Para extensiones uniformes, se puede especificar el tamao de la extensin o utilizar el tamao por defecto de 1 MB. Todas las extensiones en el tablespace sern del mismo tamao. Para asignacin de extensiones automticas, Oracle Database determina el tamao ptimo de las extensiones adicionales.

Pgina 15

Arquitectura de Base de Datos Oracle Segments


Un segmento es un conjunto de extensiones que contiene todos los datos de una estructura lgica de almacenamiento dentro de un tablespace. Por ejemplo, la base de datos Oracle asigna uno o ms extensiones para formar el segmento de datos de una tabla. La base de datos tambin asigna una o ms extensiones para formar el segmento de ndice para una tabla. Un segmento, puede ser reservado de una sola vez (10 Mb de golpe), o de varias veces (5 Mb hoy y 5 Mb maana). Cada una de las veces que se reserva espacio se denomina extensin.

Segmentos de Usuarios Un segmento de datos individual en una base de datos almacena los datos de un objeto de usuario. Hay diferentes tipos de segmentos. Algunos ejemplos de segmentos de usuarios son: Table, table partition, or table cluster LOB or LOB partition Index or index partition Cada objeto de particiones y particin de objeto se almacena en su propio segmento. Por ejemplo, si un ndice tiene cinco particiones, entonces cinco segmentos contienen los datos del ndice.

Creacin de Segmentos de Usuario De manera predeterminada, la base de datos utiliza la creacin del segmento diferido para actualizar los metadatos de la base de datos slo cuando hay creacin de tablas e ndices. A partir de Oracle Database 11g Release 2 (11.2.0.2), la base de datos tambin difiere la creacin de segmento al crear particiones. Cuando un usuario inserta la primera fila en una tabla o una particin, la base de datos crea los segmentos de la tabla o particin, sus columnas LOB, y sus ndices. La creacin del segmento diferido le permite evitar el uso de los recursos de base de datos innecesariamente. Por ejemplo, la instalacin de una aplicacin puede crear miles de objetos, consumiendo mucho espacio en disco. Muchos de estos objetos no se pueden utilizar. Usted puede utilizar el paquete DBMS_SPACE_ADMIN para manejar segmentos de objetos vacos. A partir de Oracle Database 11g Release 2 (11.2.0.2), puede utilizar este paquete de PL / SQL para hacer lo siguiente: Materializar de forma manual los segmentos de tablas vacas o particiones que no tienen segmentos creados Eliminar los segmentos de las tablas de particiones vaca o que actualmente tienen asignado un segmento vaco La figura muestra cmo se crea un nuevo segmento al crear una nueva tabla asumiendo que la creacin de segmentos diferidos esta deshabilitada.

Pgina 16

Arquitectura de Base de Datos Oracle

Cuando se crea una tabla con una clave de la clave principal o nica, la base de datos Oracle crea automticamente un ndice para esta clave. Asumiendo que la creacin de segmentos diferidos est desactivado. Se crea una tabla de la siguiente manera:

Existen cuatro tipos de segmentos (principalmente): Segmentos de TABLE: aquellos que contienen tablas Segmentos de INDEX: aquellos que contienen ndices Segmentos de ROLLBACK: aquellos se usan para almacenar informacin de la transaccin activa. Segmentos TEMPORALES: aquellos que se usan para realizar operaciones temporales que no pueden realizarse en memoria, tales como ordenaciones o agrupaciones de conjuntos grandes de datos.

Pgina 17

Arquitectura de Base de Datos Oracle


Segmentos Temporales Cuando se procesa una consulta, Oracle Database con frecuencia requiere espacio de trabajo temporal para etapas intermedias de la ejecucin de la sentencia SQL. Las operaciones que tpicamente podra requerir el uso de segmentos temporales son: ordenamiento, hashing, y fusin de bitmaps. Mientras se crea un ndice, Oracle Database tambin coloca segmentos del ndice dentro de segmentos temporales y despus convierte estos en segmentos permanentes cuando el ndice se completa. Oracle Database no crea segmentos temporales si una operacin puede ser realizada en memoria. Sin Embargo, si el uso de la memoria no es posible, entonces la base de datos automticamente destina un segmento temporal en el disco.

Segmentos de Deshacer Oracle Database mantiene registros de las todas las acciones de transacciones, colectivamente conocida como datos de deshacer. Oracle Database utiliza deshacer para hacer lo siguiente: Roll back en una transaccin activa Recuperar una transaccin terminada Proveer Consistencia de Lectura Realizar algunas operaciones lgicas de flashback

Oracle Database almacena datos de deshacer dentro la base de datos stores undo data inside the database en lugar de en los registros externos. Los datos de deshacer son almacenados en bloques que so actualizados al igual que los bloques de datos. En cambio, Oracle Database puede acceder eficientemente a datos de deshacer sin necesidad de leer los registros externos. Los datos de deshacer son almacenados en tablespace de deshacer. El Oracle Database provee un completo automatizado mecanismo, conocido como automatic undo management mode, para gestionar los segmentos de deshacer y el espacio en los tablespace de deshacer.

Rollback de Transacciones Cuando una sentencia ROLLBACK se emite, la base de datos utiliza registros de deshacer para realizar los cambios hechos en la base de datos por transacciones no confirmadas. Durante la recuperacin, la base de datos regresa cualquier cambio aplicado del redo log en lnea a los archivos de datos. Los registros de deshacer proveen consistencia en la lectura manteniendo la imagen anterior de los datos para los usuarios que acceden a los datos al mismo tiempo que otro usuario los est cambiando.

Pgina 18

Arquitectura de Base de Datos Oracle


High Water Mark Para administrar el espacio, Oracle Database marca el estado de los bloques en el segmento. La high water mark (HWM) es el punto en un segmento ms all donde se encuentran los bloques de datos sin formato y que nunca han sido usados. MSSM utiliza listas para administrar el espacio de los segmentos. En la creacin de una tabla, ningn bloque en el segmento est formateado. Cuando una sesin realiza la primera insercin dentro de una tabla, la base de datos busca la lista de bloques utilizables. Si la base de datos encuentra bloques no utilizados, entonces preformatea un grupo de bloques, los localiza en la lista, e inicia la insercin de los datos dentro de los bloques. En MSSM, un escaneo completo de la tabla lee todos los bloques por debajo de HWM. ASSM no utiliza una lista y por lo tanto gestiona el espacio de manera diferente. Cunado una sesin realiza la primera insercin dentro de una tabla, la base de datos formatea un solo bloque de mapa de bits en vez de preformatear un grupo de bloques como en MSSM. El mapa de bits marca el estado de los bloques en el segmento, tomando el lugar de la lista. La base de datos utiliza un mapa de bits para encontrar bloques libres y entonces formatea cada bloque antes de llenarlos con datos.

Tablespaces
Un tablespace es un contenedor de almacenamiento lgico de los segmentos. Los segmentos son los objetos de base de datos, como tablas e ndices, que consumen espacio de almacenamiento. En el nivel fsico, un tablespace de datos almacena en uno o ms archivos de datos o archivos temporales. Un objeto en base de datos debe estar almacenado obligatoriamente dentro de un tablespace. Las propiedades que se asocian a un tablespace son: Localizacin de los ficheros de datos. Especificacin de mximas cuotas de consumo de disco. Control de la disponibilidad de los datos (en lnea o fuera de lnea). Backup de datos. Cuando un objeto se crea dentro de un cierto tablespace, este objeto adquiere todas las propiedades antes descritas del tablespace utilizado. Una base de datos que tiene el sistema de tablas y SYSAUX. La figura muestra los espacios de tabla en una base de datos tpico. En las secciones siguientes se describen los tipos de tablas.

Pgina 19

Arquitectura de Base de Datos Oracle

Tablespaces permanentes

Los segmentos de los objetos en el tablespace se almacenan fsicamente en los archivos de datos. A cada usuario de base de datos se le asigna un tablespace por defecto permanente. A una base de datos muy pequea solo necesitara los tablespace SYSTEM y SYSAUX. Sin embargo, Oracle recomienda que se cree al menos un espacio de tablas para almacenar datos de usuario y aplicacin. Puede utilizar los tablespace para lograr los siguientes objetivos: Control de asignacin de espacio en el disco para los datos de la base de datos. Asignar una cuota (asignacin de espacio o lmite) a un usuario de base de datos Toma de tablas individuales en lnea o fuera de lnea sin afectar a la disponibilidad de la base de datos completa Realizar copias de seguridad y recuperacin de espacios de tabla individuales Importar o exportar datos de las aplicaciones mediante la utilidad de Oracle Data Pump Crear un tablespace transportable que se puede copiar o mover a partir de una base de datos a otro, incluso a travs de plataformas

Cuando un objeto se crea dentro de un cierto tablespace, este objeto adquiere todas las propiedades antes descritas del tablespace utilizado.

Pgina 20

Arquitectura de Base de Datos Oracle


SYSTEM Tablespace

El tablespace SYSTEM es un tablespace administrativo necesario incluido en la base de datos cuando se crea. Oracle Database utiliza SYSTEM para gestionar la base de datos. El tablespace SYSTEM incluye los siguientes datos, todos de propiedad del usuario SYS: El diccionario de datos Tablas y vistas que contienen la informacin administrativa sobre la base de datos objetos almacenados compilados como triggers, procedimientos, y paquetes El tablespace SYSTEM se maneja como cualquier otro tablespace, pero requiere un mayor nivel de privilegio y se restringe de alguna manera. Por ejemplo, usted no puede cambiar el nombre o eliminar el tablespace SYSTEM.

SYSAUX Tablespace SYSAUX es un tablespace auxiliar para SYSTEM. SYSAUX proporciona una ubicacin centralizada para los metadatos de la base de datos que no residen en SYSTEM. Se reduce el nmero de espacios de tabla crea de forma predeterminada, tanto en la base de datos de central y en las bases de datos definidas por el usuario. Varios componentes de base de datos, incluyendo Oracle Enterprise Manager y Oracle Streams, utilizan SYSAUX como su ubicacin de almacenamiento predeterminada. Por lo tanto, el espacio de tablas SYSAUX se crea automticamente durante la creacin de bases de datos o actualizacin. Durante la operacin de base de datos normal, la base de datos no permite al tablespace SYSAUX, detenerse o cambiar de nombre. Si SYSAUX no est disponible, entonces la funcionalidad de base de datos central sigue en funcionamiento. Las caractersticas de base de datos que utilicen el SYSAUX podran fallar, o funcionar con una capacidad limitada.

Tablespace de deshacer Un tablespace de deshacer es un tablespace gestionado localmente reservado para el sistema administrado de datos de deshacer. Al igual que otros tablespaces permanentes, estos contienen los archivos de datos. Los bloques de deshacer en estos archivos se agrupan en extensiones. Se utiliza para almacenar segmentos de deshacer, no puede contener ningn otro objeto, las extensiones se gestionan de forma local y slo puede utilizar las clusulas DATAFILE y EXTENT MANAGEMENT

Tablespaces Temporales Un espacio de tablas temporal contiene los datos transitorios que persiste slo durante la duracin de la sesin. No hay objetos de esquema permanente que puedan residir en un espacio de tablas temporal. La base de datos almacena datos temporales de tablas en los archivos temporales.

Pgina 21

Arquitectura de Base de Datos Oracle

Lo tablespaces temporales pueden mejorar la concurrencia de mltiples operaciones de ordenacin que no caben en la memoria. Estos tablespaces que tambin mejoran la eficiencia de las operaciones de gestin del espacio durante las clases. Cuando el tablespace SYSTEM es administrado localmente, un tablespace temporal por defecto est incluido en la base de datos por defecto durante la creacin de bases de datos. Un tablespace SYSTEM de gestin local no puede servir de almacenamiento temporal por defecto.

Modos del Tablespace El modo del Tablespace determina la accesibilidad de las tablas. Lectura / escritura y de tablespace de slo lectura Cada tablespace se encuentra en un modo de escritura que especifica si se puede escribir. Los modos excluyentes son los siguientes: Modo lectura / escritura Los usuarios pueden leer y escribir en el tablespace. Todos los espacios de tablas que se crean inicialmente como lectura / escritura. Los tablespaces SYSTEM y SYSAUX y tablespaces temporales de forma permanente de lectura / escritura, lo que significa que no puede ser de slo lectura. Modo de slo lectura Operaciones de escritura en los archivos de datos en el tablespace se les impide. Un tablespace de slo lectura puede residir en medio de slo lectura, como DVD o discos WORM.

Online y Offline Tablespaces Un tablespace puede estar online (accesible) u offline (inaccesible) siempre que la base de datos est abierta. Un tablespace esta usualmente online y sus datos son accesibles para los usuarios. SYSTEM tablespace y los tablespaces temporales no pueden estar offline.

Tamao de Archivo de Tablespaces Un tablespace puede ser bigfile tablespace o un smallfile tablespace. Estos tablespaces no distinguen en trminos de ejecucin de instrucciones SQL que no hacen referencia explcita a los archivos de datos o archivos temporales. La diferencia es la siguiente: Un tablespace pequeo puede contener varios archivos de datos o archivos temporales, pero los archivos no pueden ser tan grandes como en un tablespace grande. Este es el tipo de tablespace predeterminado.

Pgina 22

Arquitectura de Base de Datos Oracle

Estructuras Fsicas de Almacenamiento


Una de las caractersticas de un RDBMS es la independencia delas estructuras de datos lgicos, como tablas, vistas e ndices de las estructuras de almacenamiento fsico. Debido a que las estructuras fsicas y lgicas son independientes, se puede administrar el almacenamiento fsico de datos sin afectar el acceso a las estructuras lgicas. Por ejemplo, cambiar el nombre de un archivo de base de datos no cambia el nombre de las tablas almacenadas en ella. Archivos de datos generados cuando se emite la instruccin CREATE DATABASE: Los datafile (archivos de datos) y archivos temporales Un archivo de datos es un archivo fsico en disco que fue creado por la base de datos Oracle y contiene las estructuras de datos tales como tablas e ndices. Un archivo temporal es un archivo de datos que pertenece a una tabla temporal. Los datos se escriben en estos archivos en un formato propiedad de Oracle de que no puede ser ledo por otros programas. Los control file (archivos de control) Un archivo es un archivo de control de la raz que hace un seguimiento de los componentes fsicos de la base de datos. Los archivos de online redo log El registro de rehacer en lnea es un conjunto de archivos que contienen los registros de los cambios realizados a los datos. Una instancia de base de datos es un conjunto de estructuras de memoria que manejan los archivos de base de datos. La muestra la relacin entre la instancia y los archivos que gestiona.

Mecanismos para almacenamiento de Bases de datos


Varios mecanismos estn disponibles para la asignacin y gestin del almacenamiento de estos archivos. Los mecanismos ms comunes incluyen:

Pgina 23

Arquitectura de Base de Datos Oracle


Oracle Automatic Storage Management (ASM Oracle) Sistema de Archivos del Sistema Operativo Dispositivos Raw Sistema de Archivos Clster

Data File (Archivo de datos)


Un datafile es la representacin fsica de un tablespace. Son los "ficheros de datos" donde se almacena la informacin fsicamente. Un datafile puede tener cualquier nombre y extensin (siempre dentro de las limitaciones del sistema operativo), y puede estar localizado en cualquier directorio del disco duro, aunque su localizacin tpica suele ser $ORACLE_HOME/Database. Un datafile tiene un tamao predefinido en su creacin (por ejemplo 100Mb) y este puede ser alterado en cualquier momento. Cuando creemos un datafile, este ocupar tanto espacio en disco como hayamos indicado en su creacin, aunque internamente est vaco. Oracle hace esto para reservar espacio continuo en disco y evitar as la fragmentacin. Conforme se vayan creando objetos en ese tablespace, se ir ocupando el espacio que cre inicialmente. Un datafile est asociado a un solo tablespace y, a su vez, un tablespace est asociado a uno o varios datafiles. Es decir, la relacin lgica entre tablespaces y datafiles es de 1-N, maestrodetalle.

En la figura podemos ver como el Tablespace A est compuesto (f sicamente) por tres datafiles (DATOS_1.ORA, DATOS_2.ORA y DATOS_3.ORA). Estos tres datafiles son los ficheros fsicos que soportan los objetos contenidos dentro del tablespace A. Aunque siempre se dice que los objetos estn dentro del tablespace, en realidad las tablas estn dentro del datafile, pero tienen las propiedades asociadas al tablespace.

Pgina 24

Arquitectura de Base de Datos Oracle


Cada uno de los datafiles utilizados est ocupando su tamao en disco (50 Mb los dos primeros y 25 Mb el ltimo) aunque en realidad slo contengan dos objetos y estos objetos no llenen el espacio que est asignado para los datafiles. Los datafiles tienen una propiedad llamada AUTOEXTEND, que se si est activa, se encarga de que el datafile crezca automticamente (segn un tamao indicado) cada vez que se necesite espacio y no exista. Al igual que los tablespaces, los datafiles tambin pueden estar en lnea o fuera de ella.

Estructura Data File Oracle Database crea un data file para cada tablespace mediante la asignacin de la cantidad de espacio de disco ms la sobrecarga del encabezado del archivo de datos. El sistema operativo bajo el cual Oracle Database se ejecuta es el responsable de eliminar la informacin sobre informacin antigua y las autorizaciones de un archivo antes de asignar a la base de datos. La figura muestra los diferentes tipos de espacio que se dan en un data file

Pgina 25

Arquitectura de Base de Datos Oracle

ARQUITECTURA DEL LOG DE TRANSACCIONES (REDO LOG)


Es un buffer circular en la SGA que mantiene la informacin de los ltimos cambios realizados a la BD como resultado de transacciones o acciones internas, los cambios el buffer se almacenan secuencialmente. Esta informacin es almacenada en las entradas Redo conteniendo la informacin necesaria para reconstruccin (rehacer cambios hechos) a la base de datos por instrucciones DML y DDL. Cada instancia de una base de datos Oracle tiene un redo log asociados para proteger la base de datos en caso de fallo de instancia. El redo log de una base de datos consiste en grupos de archivos de redo log y cada grupo est integrado por un archivo de redo log y sus copias multiplexadas. Se dice que cada copia idntica es miembro de un grupo, y cada grupo es identificado por un nmero.

Se puede utilizar para reconstruir todos los cambios realizados en la base de datos, incluyendo los segmentos de deshacer. Por lo tanto, el redo log tambin protege los datos de rollback. Al recuperar la base de datos a partir de datos puesta al da, la base de datos lee los vectores de cambio en los registros del redo log y aplica los cambios a los bloques correspondientes.

Como est formado el redo log


Un registro est formado por un grupo de vectores de cambio, cada una de ellos es una descripcin de un cambio realizado en un solo bloque en la base de datos. Por ejemplo, si se cambia un valor en una tabla de salarios de los empleados, se genera un registro de rehacer que contiene vectores de cambio que describen cambios en el bloque del segmento de datos para la tabla, el bloque del segmento de datos de deshacer, y la tabla de transaccin de los segmentos de deshacer.

Archivos redo log activos e inactivos


Oracle utiliza un solo archivo redo log a la vez para almacenar registros de rehacer. El archivo redo log que LGWR est escribiendo activamente se llama el archivo redo log actual. Los archivos redo log que se requieren para la recuperacin de instancias se llaman archivos redo log activos y los archivos redo log que no son requeridos para la recuperacin de instancias se llaman archivos redo log inactivos.

Escritura en los archivos redo log (LGWR)


El redo log de una base de datos consta de dos o ms archivos redo log la base de datos necesita un mnimo de dos archivos para garantizar que se est siempre disponible para la escritura mientras que el otro est siendo archivado (Si la base de dato esta en modo ARCHIVELOG).

Pgina 26

Arquitectura de Base de Datos Oracle


LGWR escribe en los archivos redo log en forma circular. Cuando el archivo redo log actual se llena, LGWR comienza a escribir en el siguiente archivo redo log disponible. Cuando el ltimo archivo redo log est lleno, LGWR regresa al primer archivo redo log y escribe en l, comenzando el ciclo otra vez. Se escribe en los archivos online redo log de forma que puedan utilizarse en las operaciones de reconstruccin durante las recuperaciones de la BD. Las entradas redo son copiadas por la instancia de procesos desde el espacio de memoria del usuario al buffer de redo log en la SGA. Las entrada redo toman en forma contigua el espacio en el buffer. Los procesos de background LGWR escriben los redo log buffer en lnea o grupos de archivos sobre disco. Los archivos redo log estn disponibles para su reutilizacin dependiendo si el archivo est activado o no, por defecto la base de datos se crea en modo NOARCHIVELOG.: Si el archivo est desactivado (la base de datos est en modo de NOARCHIVELOG), un archivo redo log lleno est disponible despus de que los cambios registrados en l se han escrito en los archivos de datos. Si el archivo est habilitado (la base de datos est en modo ARCHIVELOG), un archivo redo log lleno est disponible para LGWR despus de que los cambios registrados en l se han escrito en los archivos de datos y el archivo ha sido archivado.

La Figura ilustra la escritura circular del archivo redo log. Los nmeros junto a cada lnea indica la secuencia en la que LGWR escribe a cada archivo de redo log.

Pgina 27

Arquitectura de Base de Datos Oracle


La inicializacin del parmetro LOG_BUFFER determina el tamao en bytes de los buffers de redologs. Por lo general, los grandes valores reducen el log de IO, en especial si las transacciones son numerosas. El default es 4 veces el mximo del bloque de datos para el Sistema Operativo.

Cambios de Log y nmeros de secuencia


Un cambio de Log es el punto en que la base de datos deja de escribir en un archivo redo log y comienza a escribir a otro. Normalmente, un cambio de Log se produce cuando el archivo redo log actual est completamente lleno y la escritura debe continuar en el archivo redo log siguiente. Sin embargo, puede configurar los cambios de registro a ocurrir a intervalos regulares, sin importar si el archivo redo log actual est completamente lleno. Tambin puede obligar a los cambios de registro de forma manual. Oracle asigna a cada archivo redo log un nmero de secuencia de registro nuevo cada vez que un cambio de registro se produce y LGWR comienza a escribir a la misma. Un archivo redo log en que se realiza un ciclo de nuevo para su uso se le da el siguiente nmero disponible de secuencia de registro, cada online redo log file se identifica por su nmero de secuencia de registro.

Archivos redo log Archivados


Los archivos redo log llenos se pueden archivar, la ejecucin de la base de datos en modo ARCHIVELOG y el proceso de archivado de archivos redo log online tiene dos ventajas: Recuperacin: La copia de seguridad de la base de datos y los archivos redo log archivados y online garantizan la recuperacin de todas las transacciones validadas. Copia de seguridad: Se puede realizar mientras la base de datos est abierta El proceso ARCn realiza el archivado automticamente, para realizar el archivado manualmente se utilizan sentencias SQL. Si el archivado se realiza correctamente: Se registra una entrada en el archivo de control. Registros: Nombre de archive log, numero de secuencia de log y SCN (Numero de cambio del sistema) inferior y superior. Los archivos redo log online llenos no se pueden reutilizar hasta que: Haya tenido lugar un punto de control. ARCn ha archivado el archivo.

Pgina 28

Arquitectura de Base de Datos Oracle Multiplexacin de Archivos Redo Log


Para proteger contra un fallo que envuelva al redo log, Oracle Database permite un redo log multiplexados, lo que significa que dos o ms copias idnticas de los redo log se puede mantener de forma automtica en lugares separados. Para el mayor beneficio, estos lugares deben estar en discos separados. Incluso si todas las copias del redo log estn en el mismo disco, sin embargo, la redundancia puede ayudar a proteger contra errores de E / S, corrupcin de archivos, y as sucesivamente. Cuando los archivos redo log estn multiplexados, al mismo tiempo LGWR escribe la informacin del redo log a varios archivos redo log idnticos, eliminando as un punto nico de fallo del redo log. La Multiplexacin se lleva a cabo mediante la creacin de grupos de archivos de redo log. Un grupo se compone de un archivo redo log y sus copias multiplexadas. Cada copia idntica se dice que es un miembro del grupo. Cada grupo de redo log se define por un nmero, como por ejemplo el grupo 1, grupo 2, y as sucesivamente.

Multiplexado redo log files:

En la figura, A_LOG1 y B_LOG1 son miembros del Grupo 1, A_LOG2 y B_LOG2 son miembros del Grupo 2, y as sucesivamente. Cada miembro de un grupo debe tener el mismo tamao. Cada miembro de un grupo de archivos de registro se activa al mismo tiempo, es decir, al mismo tiempo escrita por LGWR-segn lo indicado por los nmeros de secuencia idntico de registro asignado por LGWR. En la figura LGWR escribe al mismo tiempo a ambos A_LOG1 y B_LOG1, y as sucesivamente. LGWR no escribe al mismo tiempo a los miembros de diferentes grupos (por ejemplo, para A_LOG1 y B_LOG2).

Pgina 29

Arquitectura de Base de Datos Oracle

Respuesta a un fallo de Redo Log


Cada vez que LGWR no puede escribir en un miembro de un grupo, la base de datos de marca a ese miembro como INVALIDO y escribe un mensaje de error en el archivo de rastreo LGWR y en el registro de alerta de la base de datos para indicar el problema con los archivos inaccesibles. La reaccin especfica de LGWR cuando un miembro redo log no est disponible depende de la razn de la falta de disponibilidad, que se resumen en la tabla que sigue: Condicin LGWR Accin

LGWR Puede escribir exitosamente en al La escritura procede de forma normal. LGWR menos un miembro de un grupo escribe a los miembros disponibles del grupo y hace caso omiso de los miembros que no estn disponibles. LGWR no puede acceder al siguiente grupo Operacin de la base de datos se detiene en un cambio de log debido a que el grupo temporalmente hasta que el grupo est debe ser archivado disponible o hasta que el grupo est archivado. Todos los miembros del grupo son Oracle Database devuelve un error, y la inaccesibles para los prximos LGWR en un instancia de base de datos se apaga. En este cambio de log debido a la falta de medios caso, puede que tenga que realizar la recuperacin de los medios de comunicacin sobre la base de datos de la prdida de un archivo redo log.

Todos los miembros de un grupo de repente Oracle database devuelve un error y la se vuelven inaccesibles para LGWR mientras instancia de base de datos se apaga est escribiendo inmediatamente. En este caso, puede que tenga que realizar la recuperacin de los medios de comunicacin. Si los medios de comunicacin que contiene el registro no se pierde realmente - por ejemplo, si la unidad para el registro se convirti inadvertidamente - la recuperacin de los medios de comunicacin puede no ser necesaria. En este caso, usted slo tiene que acudir de nuevo la unidad y deje que la base de datos realizar la recuperacin automtica de ejemplo.

Configuraciones legales e ilegales


En la mayora de los casos, los redo log multiplexados deben ser simtricos: todos los grupos de redo log deben tener el mismo nmero de miembros. Sin embargo, la base de datos no

Pgina 30

Arquitectura de Base de Datos Oracle


requiere que los redo log multiplexados sean simtricos. Por ejemplo, un grupo puede tener un solo miembro, y otros grupos pueden tener dos miembros. Esta configuracin protege contra fallas de discos que afectan temporalmente algunos de los miembros de redo log, pero deja a otros intactos. El nico requisito para una instancia redo log es que esta tenga por lo menos dos grupos, las siguientes son muestras legales e ilegales de configuraciones de redo log multiplexados:

Colocacin de miembros redo log en discos diferentes


Cuando se crean redo log multiplexados, los miembros de un grupo se graban en diferentes discos fsicos. Si un disco falla, slo un miembro de un grupo no est disponible para LGWR y otros miembros siguen siendo accesibles a LGWR, por lo que la instancia puede seguir funcionando.

Pgina 31

Arquitectura de Base de Datos Oracle

Planificacin del tamao del archivo redo log


Los archivos redo log deben ser de tamao tal que un grupo lleno pueda ser archivado en una sola unidad de medios de almacenamiento en lnea (como una cinta o disco), con la menor cantidad de espacio en el medio que no se utiliza. Todos los miembros del mismo grupo multiplexado de redo log deben ser del mismo tamao. Miembros de diferentes grupos pueden tener diferentes tamaos. Sin embargo, no hay ninguna ventaja en mayor o menor tamao de archivo entre los grupos.

Planificacin del tamao de bloque de los archivo redo log


A diferencia del tamao del bloque de base de datos, que puede estar entre 2K y 32K, los archivos redo log tienen por defecto un tamao de bloque que es igual al tamao del sector fsico del disco. Histricamente, esto ha sido tpicamente 512 bytes (512B). Algunas nuevas unidades de alta capacidad de disco ofrecen 4K bytes (4K) de tamaos de sector, tanto para aumento de capacidad de ECC y la eficiencia. La mayora de las plataformas de Oracle database son capaces de detectar este tamao ms grande del sector. La base de datos crea automticamente archivos redo log con un tamao de bloque de 4K en dichos discos. Sin embargo, con un tamao de bloque de 4k, hay un mayor desperdicio de rehacer. De hecho, la cantidad de desperdicio de rehacer en bloques de 4K en comparacin con los bloques 512B es significativo. Usted puede determinar la cantidad de desperdicio de rehacer al ver las estadsticas almacenadas en el V$SESSTAT y V$SYSSTAT puntos de vista.
Nombre de SQL> SELECT, el valor de v $ sysstat DONDE 'despilfarro rehacer' = nombre;

Seleccin del nmero de archivos redo log


La mejor manera de determinar el nmero apropiado de los archivos redo log de una instancia de base de datos es poner a prueba distintas configuraciones. La configuracin ptima tiene la menor cantidad de grupos posible, sin obstaculizar al LGWR de escribir la informacin de redo log. En algunos casos, una instancia de base de datos puede requerir slo dos grupos. En otras situaciones, una instancia de base de datos puede requerir grupos adicionales para garantizar que un grupo de reciclado est siempre disponible para LGWR.

Pgina 32

Arquitectura de Base de Datos Oracle

ARQUITECTURA DE OBJETOS
Esquemas
Un esquema de base de datos es un contenedor lgico de estructuras de datos, llamados objetos de esquema. Ejemplos de objetos de esquema son las tablas e ndices. Los objetos de esquema son creados y manipulados con SQL. Un usuario de base de datos tiene una contrasea y privilegios diferentes bases de datos. Cada usuario posee un solo esquema, que tiene el mismo nombre que el usuario. El esquema contiene los datos para el usuario propietario del esquema. Por ejemplo el usuario hr posee su propio esquema llamado hr, el cual contiene distintos objetos de base de datos. Y cada objeto dentro de un esquema posee un nombre en particular, supongamos la tabla employees del esquema hr, esta se identifica por hr.employees. Un ejemplo grfico:

Oracle Database almacena un objeto de esquema lgico dentro de un espacio de tablas. No hay ninguna relacin entre los esquemas y espacios de tablas: un espacio de tabla puede contener objetos de diferentes esquemas, y los objetos de un esquema puede estar contenida en los espacios de tablas diferentes. Los datos de cada objeto son fsicamente contenidos en uno o ms archivos de datos.

Tablas
Las tablas son la unidad bsica de almacenamiento de datos en una base de datos Oracle. Los datos se almacenan en filas y columnas. Se define una tabla con un nombre (como empleados) y el conjunto de columnas. Cada columna recibe un nombre que la identifica (como EMPLOYEE_ID, apellidos, y job_id), un tipo de datos (por ejemplo, VARCHAR2, DATE, o NUMBER), y una anchura. El ancho puede ser predeterminado por el tipo de datos, como fecha de entrada. Si las columnas son del tipo de datos NUMBER, definir la precisin y la escala en lugar de ancho. Una fila es una coleccin de informacin de la columna que corresponde a un nico registro.

Pgina 33

Arquitectura de Base de Datos Oracle


Puede especificar las reglas para cada columna de una tabla. Estas reglas se denominan restricciones de integridad. Un ejemplo es la restriccin de integridad NOT NULL. Esta limitacin obliga a la columna que contiene un valor en cada fila. Tambin puede especificar columnas de la tabla para que los datos sean encriptados antes de ser almacenados en el archivo de datos. La encriptacin evita que los usuarios de control de acceso a bases de eludir mecanismos a travs de mirar dentro de archivos de datos directamente con las herramientas del sistema operativo. Despus de crear una tabla, inserte filas de datos mediante sentencias SQL. Los datos de la tabla pueden ser consultados, eliminados o actualizados utilizando sentencias SQL. Cuando se crea una tabla, Oracle asigna automticamente un segmento de datos en un espacio de tablas para almacenar los datos futuros de la tabla. Usted puede controlar la asignacin y utilizacin del espacio para el segmento de datos de una tabla de la siguiente manera: Controlando la cantidad de espacio asignado al segmento de datos mediante el establecimiento de los parmetros de almacenamiento para el segmento de datos. Controlando el uso del espacio libre en los bloques de datos que constituyen extensiones del segmento de datos es mediante el establecimiento de los parmetros PCTFREE y PCTUSED para el segmento de datos. Oracle almacena los datos de una tabla agrupada en el segmento de datos creada para el grupo, en lugar de en un segmento de datos en un espacio de tablas. Los parmetros de almacenamiento no se pueden especificar cuando una tabla agrupada se crea o se altera. Los parmetros de almacenamiento fijada para el clster siempre controlar el almacenamiento de todas las tablas en el clster. Segmento de una tabla de datos se crea en cualquier espacio de tabla por defecto el propietario de la tabla o en un espacio de tablas especficamente en la sentencia CREATE TABLE. Cuando una tabla tiene ms de 255 columnas, filas que tienen datos despus de la columna de la 255a es probable que se encadenaran en el mismo bloque. Esto se llama intra-bloque de encadenamiento. Una fila de piezas encadenado se encadenan con el ROWID de las piezas. Con el encadenamiento intra-bloque, los usuarios reciben todos los datos en el mismo bloque. Si la fila se ajusta en el bloque, los usuarios no ven un efecto en el rendimiento de E / S, porque no hay operaciones adicionales de E / S necesarias para recuperar el resto de la fila. Cada pieza de la fila, encadenados o desencadenados, contiene un encabezado de fila y los datos para todas o algunas de las columnas de la fila. Columnas individuales tambin pueden abarcar piezas de fila y, en consecuencia, los bloques de datos.

Pgina 34

Arquitectura de Base de Datos Oracle Orden de las columnas


El orden de las columnas es el mismo para todas las filas de una tabla dada. Las columnas se suelen almacenar en el orden en que fueron incluidas en la sentencia CREATE TABLE, pero esto no est garantizado. Por ejemplo, si una tabla tiene una columna de tipo de datos LONG, Oracle almacena siempre la ltima columna. Adems, si una tabla se altera de modo que una nueva columna se aade, a continuacin, la nueva columna se convierte en la ltima columna almacenada. En general, trate de colocar las columnas que suelen contener valores nulos pasado, as que las filas ocupan menos espacio. Tenga en cuenta, sin embargo, que si la tabla que se incluye la creacin de una columna LONG as, entonces los beneficios de la colocacin de columnas con frecuencia nula ltimas columnas lost.ll, Oracle se ot incluso almacenar la longitud de la columna.

Tabla de Compresin
Caracterstica de compresin de tablas de Oracle comprime los datos al eliminar los valores duplicados en un bloque de base de datos. Los datos comprimidos almacenados en un bloque de base de datos (tambin conocida como pgina de disco) son autosuficientes. Es decir, toda la informacin necesaria para volver a crear los datos sin comprimir en un bloque est disponible dentro de ese bloque. Los valores duplicados en todas las filas y columnas en un bloque se almacenan una vez al principio del bloque, en lo que se llama una tabla de smbolos para ese bloque. Todas las apariciones de estos valores se sustituyen por una breve referencia a la tabla de smbolos. Con la excepcin de una tabla de smbolos al principio, base de datos de bloques comprimidos se parecen mucho a los bloques de base de datos regular. Todas las funciones de base de datos y funciones que trabajan en los bloques de base de datos de regular tambin el trabajo en bloques de base de datos comprimida. Objetos de base de datos que puede ser comprimido incluir tablas y vistas materializadas. Para las tablas de particiones, puede elegir comprimir particiones algunos o todos. Los atributos de compresin puede ser declarada por un espacio de tabla, una tabla o una particin de una tabla. Si se declara en el nivel de tabla, a continuacin, todas las tablas creadas en el espacio de tablas que se comprimen de forma predeterminada. Puede modificar el atributo de compresin de una tabla (o una particin o espacio de tabla), y el cambio slo se aplica a los nuevos datos van en esa tabla. Como resultado, una sola tabla o particin puede contener algunos bloques comprimidos y algunos bloques de regular. Esto garantiza que el tamao de los datos no se incrementar como resultado de la compresin, en los casos en que la compresin podra aumentar el tamao de un bloque, no se aplica a ese bloque. La compresin se produce mientras los datos se insertan a granel o carga a granel. Estas operaciones incluyen: Camino directo SQL * Loader Crear tabla y como las instrucciones SELECT Inserte paralelo (o inserte en serie con un toque APPEND) declaraciones Los datos existentes en la base de datos tambin se pueden comprimir para que pase en forma comprimida a travs de ALTER TABLE y las declaraciones de MOVE. Esta operacin tiene un bloqueo exclusivo sobre la mesa, y por lo tanto evita que las actualizaciones y las cargas hasta que se complete. Si esto no es aceptable, entonces la

Pgina 35

Arquitectura de Base de Datos Oracle


utilidad redefinicin en lnea de Oracle (DBMS_REDEFINITIONPL / SQL) se puede utilizar. La compresin de datos funciona para todos los tipos de datos con excepcin de todas las variantes de LOB y tipos de datos derivados de LOB, como VARRAYs almacenados fuera de la lnea o el tipo de datos XML almacenados en un CLOB. Compresin de la tabla se realiza como parte de la carga de datos de forma masiva en la base de datos. La sobrecarga asociada con la compresin es ms visible en ese momento. Este es el principal compromiso que hay que tener en cuenta al considerar la compresin.

Valores nulos
Un valor nulo es la ausencia de un valor en una columna de una fila. Nulos indican que faltan datos, son desconocidos o inaplicables. Un valor nulo no debe ser usado para implicar cualquier otro valor, tales como cero. Una columna permite nulos a menos que una restriccin de integridad o NOT NULL PRIMARY KEY se ha definido para la columna, en cuyo caso no se puede insertar fila sin un valor para esa columna. Los nulos se almacenan en la base de datos si se caen entre las columnas con valores de datos. En estos casos se requiere 1 byte para almacenar la longitud de la columna (cero).

Valores por defecto


Se puede asignar un valor predeterminado a una columna de una tabla de modo que cuando una nueva fila se inserta y un valor para la columna se omite o palabra clave DEFAULT suministrada es, un valor por defecto se suministra de forma automtica. Los valores por defecto de columna trabajar como si de una instruccin INSERT en realidad especifica el valor predeterminado. El tipo de datos por defecto literal o una expresin debe coincidir o ser convertible al tipo de datos de la columna. Si el valor predeterminado no est explcitamente definido para una columna, el valor por defecto para la columna de forma implcita a NULL.

Tablas con particiones


Tablas con particiones permiten que sus datos sean desglosados en trozos ms pequeos y manejables llamadas particiones, o incluso subparticiones. Los ndices pueden dividirse de manera similar. Cada particin puede considerarse en forma individual, y puede operar independientemente de las otras particiones, lo que proporciona una estructura que puede ser mejor sintona para la disponibilidad y el rendimiento.

Tablas anidadas
Puede crear una tabla con una columna cuyo tipo de datos es otra tabla. Es decir, las tablas se pueden anidar dentro de otras tablas como valores de una columna. El servidor de base de datos Oracle almacena los datos de tablas anidadas fuera de la lnea de las filas de la tabla principal, utilizando una tabla de tienda que est asociado con la columna de tabla anidada. La

Pgina 36

Arquitectura de Base de Datos Oracle


fila principal contiene un conjunto de valores identificador nico asociado a una instancia de la tabla anidada.

Tablas Temporales
Adems de las tablas permanentes, Oracle puede crear tablas temporales para mantener privado de sesin de datos que existe slo para la duracin de una transaccin o sesin. La sentencia CREATE GLOBAL TEMPORARY TABLE crea una tabla temporal que puede ser de transacciones especficas o particulares de la sesin. Para transacciones especficas tablas temporales, existen datos para la duracin de la transaccin. Para la sesin de tablas especficas temporales, existen datos para la duracin de la sesin. Datos en una tabla temporal es privado a la sesin. En cada sesin slo se puede ver y modificar sus propios datos. Cerraduras DML no se adquieren en los datos de las tablas temporales. La instruccin de bloqueo no tiene ningn efecto en una tabla temporal, ya que cada sesin tiene sus propios datos privados. Una declaracin TRUNCATE emitida en una sesin especfica de la tabla temporal trunca los datos de su propia sesin. No trunca los datos de otras sesiones que estn utilizando la misma tabla.

Las tablas temporales utilizar segmentos temporales. A diferencia de las tablas permanentes, las tablas temporales y sus ndices no asignar automticamente un segmento cuando se crean. En cambio, los segmentos son asignados cuando la primera insercin (o CREATE TABLE AS SELECT) se lleva a cabo. Esto significa que si un SELECT, UPDATE, o DELETE se realiza antes de la primera insercin, a continuacin, la mesa parece estar vaco. Puede llevar a cabo las instrucciones de DDL (ALTER TABLE, DROP TABLE, CREATE INDEX, y as sucesivamente) en una tabla temporal slo cuando no hay ninguna sesin actualmente ligado a ella. Una sesin se enlaza a una tabla temporal cuando se realiza un INSERT en l. La sesin se desatado por un TRUNCATE, a la terminacin del periodo de sesiones, o por hacer una confirmacin o retrotraccin de una transaccin especfica de la tabla temporal. Segmentos temporales son liberados al final de la transaccin para transacciones especficas y al final de la sesin para la sesin especfica.

Tablas externas Las tablas externas acceso a los datos de fuentes externas como si se tratara de una tabla en la base de datos. Puede conectarse a la base de datos y crear los metadatos de la tabla externa utilizando DDL.

Pgina 37

Arquitectura de Base de Datos Oracle El DDL para una tabla externa consta de dos partes: una parte que describe los tipos de columna de Oracle, y otra parte (los parmetros de acceso) que describe la asignacin de los datos externos a las columnas de datos de Oracle. Una tabla externa no describe todos los datos que se almacena en la base de datos. Tampoco describen cmo se almacenan los datos en la fuente externa. En su lugar, se describe cmo la capa de la tabla externa tiene que presentar los datos al servidor. Es la responsabilidad del controlador de acceso y la capa de tabla externa para hacer las transformaciones necesarias requeridas en los datos en el archivo de datos para que coincida con la definicin de la tabla externa. Las tablas externas son de slo lectura, por lo tanto, no hay operaciones de DML posibles, y no se pueden crear ndices en ellos. Al crear una tabla externa, debe especificar su tipo. Cada tipo de tabla externa tiene su propio controlador de acceso que proporciona los parmetros de acceso nico a ese tipo de tabla externa. El controlador de acceso asegura que los datos de la fuente de los datos se procesan para que coincida con la definicin de la tabla externa. En el contexto de las tablas externas, carga de datos se refiere al acto de leer datos de una tabla externa y la carga en una tabla en la base de datos. Descarga de datos se refiere al acto de lectura de los datos de una tabla en la base de datos e insertarlos en una tabla externa. El tipo por defecto para las tablas externas es ORACLE_LOADER, que le permite leer datos de una tabla de una tabla externa y la carga en una base de datos. Oracle tambin ofrece el tipo ORACLE_DATAPUMP, que le permite descargar datos (es decir, leer datos de una tabla en la base de datos y la inserta en una tabla externa) y vuelva a cargarlo en una base de datos Oracle. La definicin de una tabla externa se mantiene aparte de la descripcin de los datos del origen de datos. Esto significa que:
El archivo de origen puede contener campos ms o menos hay columnas de la tabla externa Los tipos de datos para los campos del origen de datos puede ser diferente de las columnas de la tabla externa

El principal uso de las tablas externas es usarlos como origen de la fila para cargar datos en una tabla real en la base de datos. Despus de crear una tabla externa, a continuacin, puede utilizar un CREATE TABLE AS SELECT o INSERT INTO ... AS SELECT, utilizando la tabla externa como la fuente de la clusula SELECT. No se puede insertar datos en tablas externas o actualizar los registros en ellos, las tablas externas son de slo lectura.

Pgina 38

Arquitectura de Base de Datos Oracle

Vistas
Una vista es una estructura de datos de Oracle se define a travs de una sentencia SQL. La sentencia SQL se guarda en la base de datos. Cuando se utiliza una vista en una consulta, la consulta almacenada se ejecuta y los datos de la tabla base se devuelve al usuario. Las vistas no contienen datos, sino que representan formas de ver los datos de la tabla base en la forma en la consulta especfica. Puede utilizar una vista para varios propsitos:
Para simplificar el acceso a los datos almacenados en varias tablas. Para implementar la seguridad especfica para los datos en una tabla. Ocultar la complejidad de datos Simplificar las declaraciones para el usuario Presentar los datos en una perspectiva diferente de la de la tabla base Aislar las solicitudes de cambios en las definiciones de las tablas de la base Expresar una consulta que no puede expresarse sin usar una vista Guardar consultas complejas

Oracle almacena la definicin de una vista en el diccionario de datos como el texto de la consulta que define la vista. Al hacer referencia a una vista en una sentencia SQL, Oracle: 1. Combina la declaracin que haga referencia a la vista con la consulta que define la vista 2. Analiza la instruccin se fusionaron en un rea compartida de SQL 3. Ejecuta la sentencia Oracle analiza una declaracin que hace referencia a una vista en una nueva rea de SQL compartido slo si no existentes rea compartida de SQL contiene una declaracin similar. Por lo tanto, obtener el beneficio del uso reducido de la memoria compartida asociado con SQL al utilizar vistas.

Dependencias y vistas Debido a que una vista es definida por una consulta que los objetos de otras referencias (las tablas, vistas materializadas, u otras vistas) una vista depende de los objetos de referencia. Oracle gestiona automticamente las dependencias de vistas. Por ejemplo, si se elimina una tabla base de una vista y luego se vuelve a crear, Oracle determina si la nueva tabla base es aceptable para la definicin actual de la vista.

Pgina 39

Arquitectura de Base de Datos Oracle Vista actualizable de unin (Updatable Join Views) Se define como una vista que tiene ms de una tabla o vista en la clusula FROM (una unin), y que no utiliza ninguna de estas clusulas: DISTINCT, aggregation, GROUP BY, START WITH, CONNECT BY, ROWNUM, y operaciones de conjuntos (UNION ALL, INTERSECT, y as sucesivamente). Una vista actualizable de unin es una vista de que involucra a dos o ms tablas base o vistas, donde UPDATE, INSERT y DELETE estn permitidas. ALL_UPDATABLE_COLUMNS, DBA_UPDATABLE_COLUMNS y USER_UPDATABLE_COLUMNS contienen informacin que indica cul de las columnas de la vista se pueden actualizar. Con el fin de ser intrnsecamente actualizable, un punto de vista no puede contener cualquiera de las siguientes construcciones:
Un conjunto de operadores Un operador DISTINCT Una funcin de agregado o analtica Las casuals GROUP BY, ORDER BY, CONNECT BY, o START WITH Una coleccin en una lista SELECT Una subconsulta en una lista SELECT Join (con algunas excepciones)

Vistas que no son actualizables se pueden modificar mediante INSTEAD OF triggers.

Vistas de objetos En bases de datos objeto-relacional, una vista de objetos le permite recuperar, actualizar, insertar y eliminar datos relacionales como si se han almacenado como un tipo de objeto. Tambin se pueden definir puntos de vista con columnas que son tipos de datos de objetos, tales como objetos, REFs, y colecciones (tablas anidadas y VARRAYs).

Vistas en lnea Una vista en lnea no es un objeto de esquema. Se trata de una subconsulta con un alias (nombre de correlacin) que puede utilizar como una vista dentro de una sentencia SQL.

Vistas materializadas Las vistas materializadas son objetos de esquema que se puede utilizar para resumir, calcular, reproducir y distribuir los datos. Son adecuados en los entornos informticos distintos, tales como almacenamiento de datos, soporte de decisiones, y la computacin distribuida o mvil:

Pgina 40

Arquitectura de Base de Datos Oracle En los almacenes de datos, las vistas materializadas se utilizan para calcular y almacenar datos agregados, como sumas y promedios. Las vistas materializadas en estos ambientes son por lo general se refiere como resmenes ya que almacenan los datos resumidos. Tambin se puede utilizar para calcular une con o sin agregados. El optimizador puede utilizar vistas materializadas para mejorar el rendimiento de las consultas que permiten identificar automticamente cuando una vista materializada puede y debe ser utilizada para satisfacer una solicitud. El optimizador de transparencia vuelve a escribir la solicitud de uso de la vista materializada. Las consultas se dirigen a la vista materializada y no a las tablas de detalle de base o puntos de vista. En los entornos distribuidos, vistas materializadas se utiliza para replicar datos en sitios distribuidos y sincronizar actualizaciones hechas en varios lugares con el conflicto mtodos de resolucin. Las vistas materializadas como rplicas de proporcionar acceso local a los datos que de otra manera tienen que ser accesible desde sitios remotos. En los entornos de computacin mvil, las vistas materializadas se utilizan para descargar un subconjunto de datos desde los servidores centrales a los clientes mviles, con actualizaciones peridicas de los servidores centrales y la propagacin de cambios por los clientes a los servidores centrales. Las vistas materializadas son similares a los ndices de varias maneras:
Se consumen espacio de almacenamiento. Se debe actualizarse cuando los datos en sus tablas maestras cambios. Mejoran el rendimiento de ejecucin de SQL cuando se utilizan para la consulta vuelve a escribir. Su existencia es transparente para las aplicaciones SQL y los usuarios.

A diferencia de los ndices, las vistas materializadas se pueden acceder directamente a travs de una instruccin SELECT. Dependiendo del tipo de actualizacin que se requieren, tambin se puede acceder directamente en una instruccin INSERT, UPDATE, o DELETE. Una vista materializada puede ser dividida. Se puede definir una vista materializada en una tabla con particiones e ndices de una o ms de la vista materializada.

ndices
Los ndices son estructuras opcionales asociadas con tablas y clster. Se pueden crear ndices en una o ms columnas de una tabla para acelerar la ejecucin de sentencias SQL sobre la tabla Al igual que el ndice de un libro le ayuda a encontrar la informacin ms rpido que si no hay ndice.

Pgina 41

Arquitectura de Base de Datos Oracle Un ndice de Oracle proporciona una ruta de acceso ms rpido a datos de la tabla. Los ndices son el principal medio de la reduccin de E/S de disco cuando se utilizan correctamente. Puede crear varios ndices para una tabla, siempre y cuando la combinacin de las columnas es diferente para cada ndice. Puede crear ms de un ndice con las mismas columnas si se especifica claramente diferentes combinaciones de las columnas. Oracle ofrece varios esquemas de indexacin, que proporcionan una funcionalidad complementaria sobre el rendimiento:
ndices rboles B ndices clster rboles B ndices clster hash ndices reverse key ndices bitmap ndices bitmap join

Oracle tambin proporciona soporte para los ndices basados en funciones y los ndices de dominio especfico para una aplicacin o un cartucho. La ausencia o presencia de un ndice no requiere un cambio en la redaccin de cualquier SQL. Un ndice es simplemente una va de acceso rpido a los datos. Slo afecta a la velocidad de ejecucin. Dado un valor de datos que ha indexado, el ndice apunta directamente a la ubicacin de las filas que contiene ese valor. Los ndices son lgica y fsicamente independiente de los datos en la tabla asociada. Puede crear o quitar un ndice en cualquier momento sin afectar a las tablas de base u otros ndices. Si se coloca un ndice, todas las aplicaciones siguen funcionando. Sin embargo, el acceso de los datos previamente indexados puede ser ms lento. ndices, como estructuras independientes, requieren espacio de almacenamiento. Oracle mantiene de forma automtica y utiliza los ndices despus de su creacin. Automticamente refleja los cambios a los datos, tales como la adicin de nuevas filas, actualizar filas, o eliminacin de filas, en todos los ndices relevantes con ninguna accin adicional por los usuarios. Rendimiento de recuperacin de datos indexados se mantiene casi constante, incluso cuando se agregan nuevas filas. Sin embargo, la presencia de muchos ndices en una tabla de una disminucin del rendimiento de las actualizaciones, eliminaciones e inserciones, ya que Oracle tambin debe actualizar los ndices asociados a la tabla. El optimizador puede utilizar un ndice existente para construir otro ndice. Esto se traduce en un ndice mucho ms rpido de construir.

Pgina 42

Arquitectura de Base de Datos Oracle

ndices nicos y no nico Los ndices pueden ser nicos o no nicos. ndices nicos garantizan que no hay dos filas de una tabla con valores duplicados en la columna de clave (o columnas). ndices no nicos no imponen esta restriccin en los valores de columna. Oracle recomienda que los ndices nicos se crean explcitamente mediante CREATE UNIQUE INDEX. Crear ndices nicos a travs de una restriccin de clave principal o nica no garantiza que cree un nuevo ndice, y el ndice que crean no se garantiza que sea un ndice nico. ndices compuestos Un ndice compuesto (tambin llamado ndices concatenados) es un ndice que se crea en varias columnas en una tabla. Las columnas de un ndice compuesto pueden aparecer en cualquier orden y no necesita ser adyacentes en la tabla. Los ndices compuestos pueden acelerar la recuperacin de datos para las instrucciones SELECT en la que la clusula donde las referencias a todos o la parte principal de las columnas en el ndice compuesto. Por lo tanto, el orden de las columnas utilizadas en la definicin es importante. Generalmente, las columnas ms accesible o ms selectivas primero. No ms de 32 columnas pueden formar un ndice compuesto regular. Para un ndice bitmap, le nmero mximo de columnas es 30. Un valor clave no puede exceder aproximadamente la mitad (menos algunos gastos generales) del espacio de los datos disponibles en un bloque de datos.

ndices y claves Aunque los trminos se usan indistintamente, los ndices y las claves son diferentes. Los ndices son estructuras realmente se almacena en la base de datos, que los usuarios crear, modificar y quitar mediante sentencias SQL. Se crea un ndice para proporcionar una ruta de acceso rpido a datos de la tabla. Las claves son estrictamente un concepto lgico. Las claves corresponden a otra de las caractersticas de Oracle llamada restricciones de integridad, que aplica las reglas de negocio de una base de datos. Debido a que Oracle utiliza ndices para imponer algunas restricciones de integridad, la clave y el ndice de trminos a menudo se utilizan indistintamente. Sin embargo, no confundir unos con otros.

Pgina 43

Arquitectura de Base de Datos Oracle ndices y valores nulos Los valores NULL en los ndices se consideran distintas, salvo cuando todos los valores no NULL en dos o ms filas de un ndice son idnticos, en cuyo caso las filas se consideran iguales. Por lo tanto, los ndices UNIQUE evitar las filas que contienen valores NULL de ser tratados como iguales. Esto no se aplica si no hay valores no NULL en otras palabras, si las filas son totalmente nulas. Oracle no tiene filas de ndice de la tabla en la que todas las columnas de clave NULL, excepto en el caso de los ndices bitmap o cuando la clave del clster valor de la columna es NULL.

ndices basados en funciones


Se pueden crear ndices en las funciones y las expresiones que implican una o ms columnas en la tabla de la indexacin. Un ndice basado en las funciones calcula el valor de la funcin o la expresin y la almacena en el ndice. Usted puede crear un ndice basado en las funciones, ya sea como un rbol-B o un ndice de mapa de bits. Proporcionan un mecanismo eficiente para la evaluacin de las declaraciones que contienen las funciones de sus clusulas WHERE. El valor de la expresin se calcula y se almacena en el ndice. Al procesar las instrucciones INSERT y UPDATE, sin embargo, Oracle todava debe evaluar la funcin de procesar la sentencia. Usted debe obtener estadsticas sobre los ndices basados en funciones para el optimizador. De lo contrario, los ndices no se pueden utilizar para procesar sentencias SQL. El optimizador puede utilizar un ndice de exploracin de distancia en un ndice basado en las funciones para las consultas con expresiones en la clusula WHERE. Basado en funcin de los ndices, dependen de la funcin que se utiliza en la expresin que define el ndice. Si la funcin es una funcin PL / SQL o una funcin del paquete, el ndice est deshabilitado por cualquier cambio en la especificacin de la funcin. Para crear un ndice basado en las funciones, el usuario debe conceder CREATE INDEX o CREATE ANY INDEX. Para utilizar un ndice basado en las funciones: La tabla debe ser analizado despus de que el ndice se crea. La consulta se debe garantizar que no necesita ningn valor NULL de la expresin de ndice, ya que los valores NULL no se almacenan en los ndices. Cmo se almacenan los ndices Cuando se crea un ndice, Oracle asigna automticamente un segmento de ndice para almacenar los datos del ndice en un tablespace. Usted puede controlar la asignacin

Pgina 44

Arquitectura de Base de Datos Oracle de espacio para el segmento de un ndice y el uso de este espacio reservado de la siguiente manera:
Establezca los parmetros de almacenamiento para el segmento de ndice para controlar la asignacin de extensiones del segmento de ndice. Establecer el parmetro PCTFREE para el segmento de ndice para controlar el espacio libre en los bloques de datos que constituyen el segmento de extensin del ndice.

El tablespace de segmento de un ndice o es el dueo de tablas por defecto o un tablespace especficamente en la instruccin CREATE INDEX. Usted no tiene que poner un ndice en el espacio de tablas igual que su tabla asociada. Adems, puede mejorar el rendimiento de las consultas que utilizan un ndice mediante el almacenamiento de un ndice y la tabla en diferentes espacios de tablas se encuentra en las unidades de disco diferente, ya que Oracle puede recuperar los datos de ndice y la tabla en paralelo.

Formato de los bloques de ndice (Index Blocks) El espacio disponible para los datos ndices el bloque de datos menos el encabezado del bloque, el rowid y un byte de tamao por cada valor indexado. Cuando se crea un ndice, Oracle recupera y ordena las columnas para que se indexe y almacena la ROWID, junto con el valor del ndice para cada fila. A continuacin, Oracle carga el ndice de abajo hacia arriba.

Estructura interna de los ndices Oracle utiliza los rboles B para almacenar los ndices y acelerar el acceso de datos. Sin ndices, que tiene que hacer una bsqueda secuencial de los datos para encontrar un valor. Para las n filas, el nmero medio de filas buscado es n / 2. Esto no se escala muy bien cmo aumentar el volumen de datos. Considere la posibilidad de una lista ordenada de los valores divididos en bloques de un amplio rango (los bloques de la hoja). Los criterios de valoracin de las gamas, junto con punteros a los bloques se pueden almacenar en un rbol de bsqueda y un valor de log (n) para las entradas de n que se puede encontrar. Este es el principio bsico detrs de los ndices de Oracle.

Pgina 45

Arquitectura de Base de Datos Oracle

Los bloques superiores (branch blocks) de un ndice B-tree contienen los datos del ndice que apunta a los bloques de ndice de nivel inferior. Los bloques de nivel ms bajo ndice (leaf blocks) contienen todos los valores de los datos indexados y una ROWID correspondiente que se utiliza para localizar la fila actual. Los bloques de la hoja son doblemente enlazadas. Los ndices en columnas que contienen datos de caracteres se basan en los valores binarios de los personajes en el juego de caracteres de base de datos. Para un ndice nico, un ROWID existe para cada valor de datos. Para un ndice no nico, el ROWID se incluye en la clave de forma ordenada, de modo que los ndices no nicos se ordenan por la clave del ndice y ROWID. Los valores clave que contiene todos los valores nulos no son indexados, a excepcin de los ndices clster. Dos filas se contienen todos los valores nulos, sin violar un ndice nico.

Propiedades del ndice Los dos tipos de bloques:


Branch blocks para la bsqueda Leaf blocks que almacenan los valores

Pgina 46

Arquitectura de Base de Datos Oracle Branch blocks. Almacenan lo siguiente:


El prefijo clave mnimo necesario para tomar una decisin entre dos ramas claves El puntero al bloque infantil que contiene la clave

Si los bloques tienen las llaves n entonces tienen n +1 punteros. El nmero de claves y punteros se ve limitada por el tamao del bloque. Leaf blocks. Todos los loeaf blocks estn a la misma profundidad del bloqueo de la rama de la raz, almacenan lo siguiente:
El valor completo de clave para cada fila ROWIDs de las filas de la tabla

Todos los pares de claves y ROWID estn vinculados a sus hermanos a la izquierda y la derecha. Estn ordenados por (clave, ROWID). La estructura de rbol B tiene las siguientes ventajas:
Todos los bloques de las hojas del rbol se encuentran en la misma profundidad, por lo que la recuperacin de cualquier registro de cualquier parte del ndice tiene aproximadamente la misma cantidad de tiempo. Los ndices de rbol B mantienen el equilibrio automticamente. Todos los bloques del rbol B son de tres cuartos de su capacidad en promedio. rboles B proporcionan un rendimiento excelente para la recuperacin de una amplia gama de consultas, incluyendo coincidencia exacta y bsquedas por rango. Las inserciones, actualizaciones y eliminaciones son eficientes, mantener el orden clave para una recuperacin rpida. El rendimiento del rbol B es bueno para las tablas grandes y pequeos y no se degrada como el tamao de crecimiento de una tabla.

ndice nico de escaneo Exploracin de ndice nico es una de las maneras ms eficientes de acceso a los datos. Este mtodo de acceso se utiliza para devolver los datos de los ndices del rbol B. El optimizador elige un escaneo nico cuando todas las columnas de un nico ndice se especifican las condiciones de igualdad.

ndice de Rango de escaneo ndice de Frecuencia de barrido es una operacin comn para acceder a datos. Puede ser limitada (limitada a ambos lados) o ilimitada (en uno o ambos lados). Los datos se devuelven en el orden ascendente de las columnas de ndice. Varias filas con valores idnticos son ordenados (en orden ascendente) por el ROWIDs.

Pgina 47

Arquitectura de Base de Datos Oracle Key Compression Le permite comprimir partes de los valores de columna de clave principal en un ndice o tabla organizada por ndices, lo que reduce la sobrecarga de almacenamiento de valores repetidos. En general, las claves de un ndice de dos piezas, una pieza de la agrupacin y una pieza nica. Si la clave no est definida para tener una pieza nica, Oracle brinda una en forma de un ROWID aadido a la pieza de la agrupacin. La compresin rompe la clave del ndice en una entrada de prefijo (la pieza de agrupacin) y una entrada de sufijo (la pieza nica). Se logra mediante el intercambio de las entradas prefijo entre las entradas de sufijo en un bloque de ndice. Claves slo en los bloques de la hoja de un ndice rbol B se comprimen. En los bloqueos de rama el sufijo clave se puede truncar, pero la clave es no comprimido. Compresin de claves se realiza dentro de un bloque de ndice, pero no a travs de los bloques de ndice mltiple. Entradas sufijo forma la versin comprimida de las filas del ndice. Cada referencia a la entrada de un sufijo prefijo de la entrada, que se almacena en el bloque ndice igual a la entrada de sufijo. Puede dar lugar a un gran ahorro en el espacio, lo que le permite almacenar ms claves en cada bloque de ndices, lo que puede conducir a una menor E/S y mejor rendimiento. Aunque la compresin de llaves reduce los requisitos de almacenamiento de un ndice, se puede aumentar el tiempo de CPU que se requiere para reconstruir los valores de columna clave durante un recorrido de ndice. Tambin se incurre en algunos gastos adicionales de almacenamiento, ya que cada entrada de prefijo tiene una sobrecarga de 4 bytes asociados a ella.

ndice de clave inversa (Reverse key index) Creacin de un ndice de clave inversa, en comparacin con un ndice estndar, invierte los bytes de cada columna indexada (excepto el ROWID), manteniendo el orden de las columnas. Un acuerdo as podra ayudar a evitar la degradacin del rendimiento con Real Application Clusters que las modificaciones en el ndice se concentran en un pequeo conjunto de bloques de la hoja. Mediante la inversin de las claves del ndice, las inserciones se distribuyen a travs de todas las claves de la hoja en el ndice. Utilizando la clave inversa elimina la posibilidad de ejecutar un rango de escaneo de ndice de consultas en el ndice. Dado que las claves lxico adyacentes no se almacenan uno junto al otro en un ndice de clave inversa, slo buscar por clave o un ndice completo (tabla) se puede realizar exploraciones.

Pgina 48

Arquitectura de Base de Datos Oracle

A veces, con un ndice de clave inversa puede hacer un OLTP Real Application Clusters de aplicaciones ms rpido.

ndices Bitmap (Bitmap indexes)


El propsito de un ndice es proporcionar a los punteros a las filas de una tabla que contiene un valor clave dada. En un ndice normal, esto se logra mediante el almacenamiento de una lista de ROWIDs para cada clave que corresponde a las filas con el valor de la clave. Oracle almacena cada valor de la clave varias veces con cada ROWID almacenados. En un ndice de mapa de bits, un mapa de bits para cada valor de la clave se utiliza en lugar de una lista de ROWIDs. Cada bit en el bitmap corresponde a un ROWID posible. Si el bit est establecido, entonces significa que la fila con el ROWID correspondiente contiene el valor clave. Una funcin de mapeo de la posicin del bit se convierte en un ROWID real, por lo que el ndice de mapa de bits proporciona la misma funcionalidad que un ndice normal a pesar de que utiliza una representacin de diferentes internamente. Si el nmero de diferentes valores de las claves es pequeo, entonces los ndices de mapa de bits son muy eficientes del espacio. Indexacin de mapa de bits de manera eficiente se combina ndices que corresponden a varias condiciones en una clusula WHERE. Las filas que cumplen alguna, pero no todas, las condiciones son filtradas antes de la misma tabla que se accede. Esto mejora el tiempo de respuesta, a menudo dramticamente. Beneficios para las aplicaciones de Data Warehousing Indexacin Bitmap ofrece beneficios para las aplicaciones de almacenamiento de grandes cantidades de datos y consultas ad hoc, pero un bajo nivel de transacciones concurrentes. Para estas aplicaciones, la indexacin de mapa de bits establece lo siguiente:

Reduccin de tiempo de respuesta de las grandes clases de consultas ad hoc Una reduccin sustancial del uso del espacio en comparacin con otras tcnicas de indexacin Mejoras de rendimiento espectacular, incluso en hardware extremo ms bajo DML paralelo muy eficiente y cargas

Las ventajas de utilizar ndices bitmap son mayores para las columnas de baja cardinalidad, es decir, columnas en las que el nmero de valores distintos es pequeo en comparacin con el nmero de filas en la tabla. Si el nmero de valores distintos de una columna es menos del 1% del nmero de filas de la tabla, o si los valores de una columna se repiten ms de 100 veces, la columna es un candidato para un ndice de bitmap Incluso las columnas con un menor nmero de repeticiones y la cardinalidad por tanto, mayor puede ser candidato si tienden a estar involucrados en las complejas condiciones en las clusulas WHERE de las consultas. Por ejemplo, en una tabla con 1 milln de filas, una columna con 10.000 valores distintos es un candidato para un ndice de mapa de bits. Un ndice de bitmap en esta columna puede superar el rendimiento de un ndice B-tree, sobre todo cuando esta columna a menudo es consultada en relacin con las otras columnas.

Pgina 49

Arquitectura de Base de Datos Oracle

Los ndices Bitmap y nulos ndices Bitmap puede incluir filas que tienen valores NULL, a diferencia de la mayora de los otros tipos de ndices. Indexacin de los valores nulos pueden ser tiles para algunos tipos de comandos SQL, tales como consultas con funcin de agregado (COUNT) Los ndices Bitmap en las tablas con particiones Al igual que otros ndices, puede crear ndices bitmap en las tablas de particiones. La nica restriccin es que los ndices bitmap deben ser locales en la tabla que no puede ser dividido ndices globales. ndices globales bitmap slo se admiten en las tablas sin particiones. Adems de un ndice de bitmap en una sola tabla, puede crear un bitmap join index, que es un ndice de bitmap para la unin de dos o ms tablas. Este ndice es una manera eficiente con el espacio de la reduccin del volumen de datos que se deben unir mediante la realizacin de las restricciones de antemano. Para cada valor en una columna de una tabla, un bitmap join index almacena el ROWIDs de filas correspondientes en una o ms tablas de otros. En un entorno de almacenamiento de datos, la condicin de combinacin es un inner join entre la columna de clave principal o las columnas de las tablas de dimensiones y de la columna de clave externa o columnas de la tabla de hechos. Los bitmap join index son mucho ms eficientes en el almacenamiento.

Clsters
Los clster son un mtodo opcional de almacenamiento de datos de la tabla. Un clster es un conjunto de tablas que comparten el mismo bloque de datos porque comparten columnas comunes y a menudo se utilizan juntos. Debido a que el almacenamiento de filas relacionadas de tablas diferentes en los mismos bloques de datos, si los clster se utilizan adecuadamente ofrece los siguientes beneficios:

E/S de disco se reduce para las uniones de tablas en clster. El tiempo de acceso mejora para las uniones de tablas en clster. En un clster, una clave es el valor de las columnas clster clave para una fila determinada. Cada valor de la clave del clster se almacenan slo una vez en el clster y el ndice de clster, sin importar el nmero de filas de diferentes tablas contienen el valor.

Por lo tanto, una menor capacidad de almacenamiento es necesaria para almacenar la tabla relacionada y datos de ndice en un grupo que es necesario en forma de tabla no agrupada.

Hash Clusters
Hash clster almacena los datos de una forma similar al clster, se diferencia en que su clave viene dada por una funcin hash, con la cual se agrupan los datos de la tabla. Sin embargo, un registro se almacena en un clster hash basado en el resultado de aplicar una funcin hash al valor de la fila clster clave.

Pgina 50

Arquitectura de Base de Datos Oracle


Todas las filas con el mismo valor de clave se almacenan juntas en el disco. Clusters hash son una mejor opcin que utilizar una tabla de ndice o conjunto de ndice cuando una tabla se consulta con frecuencia con las consultas de la igualdad. El valor resultante clave hash apunta directamente a la zona en el disco que almacena las filas. Hash es una forma opcional de almacenamiento de datos de la tabla para mejorar el rendimiento de recuperacin de datos. Para utilizar hash, crear un clster de hash y las tablas de carga en el clster. Oracle almacena fsicamente las filas de una tabla en un conjunto de hash, y recupera de acuerdo a los resultados de una funcin hash.

Dimensiones
Una dimensin define jerrquico (padre / hijo) las relaciones entre pares de columnas o conjuntos de columnas. Cada valor en el nivel secundario se asocia con uno y slo un valor en el nivel primario. Una relacin jerrquica es una dependencia funcional de un nivel de jerarqua al siguiente nivel en la jerarqua. Una dimensin es un contenedor de relaciones lgicas entre las columnas, y no tiene ningn tipo de almacenamiento de datos se le asignan. La sentencia CREATE DIMENSION especifica:
Clusulas de varios niveles, cada uno de los cuales identifica una columna o conjunto de columnas en la dimensin Uno o ms clusulas de jerarqua que especifican las relaciones padre / hijo entre niveles adyacentes Clusulas atributo opcional, cada uno de los cuales identifica una columna adicional o conjunto de columnas asociadas a nivel individual

Las columnas de una dimensin pueden proceder de la misma tabla (sin normalizar) o de varias tablas (total o parcialmente normalizado). Para definir una dimensin con columnas de varias tablas, conectar las tablas usando la clusula JOIN con la clusula HIERARCHY.

Sinnimos (Synonyms)
Un sinnimo es un alias para cualquier tabla, vista, vista materializada, secuencia, procedimiento, funcin, paquete, el tipo de objetos Java esquema de clases, definidas por el usuario tipo de objeto, o un sinnimo otra. Debido a que un sinnimo es simplemente un alias, no requiere de almacenamiento que no sea su definicin en el diccionario de datos. Los sinnimos son de uso frecuente para la seguridad y comodidad. Por ejemplo, ellos pueden hacer lo siguiente: Mscara el nombre y propietario de un objeto Ofrecer transparencia de ubicacin de los objetos a distancia de una base de datos distribuida Simplificar las instrucciones SQL para los usuarios de la base de datos Activar el acceso restringido similares a las vistas especializados en el ejercicio de un control detallado de acceso

Pgina 51

Arquitectura de Base de Datos Oracle

Puede crear sinnimos pblicos y privados. Un sinnimo pblico es propiedad del grupo de usuarios especial denominado PUBLIC y cada usuario en una base de datos se puede acceder a l. Un sinnimo privado en el esquema de un usuario especfico que tiene control sobre su disponibilidad para otros. Los sinnimos son muy tiles, tanto en entornos de bases de datos distribuidas y no distribuidas, ya que ocultar la identidad del objeto subyacente, incluyendo su ubicacin en un sistema distribuido. Esto es ventajoso porque si el objeto subyacente debe ser renombrado o movido, entonces slo el sinnimo necesita ser redefinido. Las aplicaciones basadas en el sinnimo de seguir funcionando sin modificaciones. Sinnimos tambin puede simplificar las sentencias SQL para los usuarios en un sistema de base de datos distribuida.

Pgina 52

Arquitectura de Base de Datos Oracle

ARQUITECTURA DE PROCESAMIENTO DE CONSULTAS


Para entender como Oracle Database procesa las sentencias SQL, es necesario comprender una parte de la base de datos llamada optimizador (tambin conocido como el optimizador de consultas u optimizador basado en costos). Todas las sentencias SQL utilizan el optimizador para determinar el modo ms eficiente de acceder a los datos especificados.

Uso del Optimizador


Para ejecutar una sentencia DML, Oracle Database podra realizarlo de en muchos pasos. Cada paso. Cada paso o bien recupera las filas de los datos fsicos de la base de datos o los prepara para el usuario que emite la sentencia. Muchas maneras diferentes de procesar una sentencia DML son posibles. Por ejemplo, el orden en que las tablas o ndices son accedidos puede variar. Los pasos que la base de datos utiliza para ejecutar una sentencia afecta de gran manera que tan rpido la sentencia se ejecute. El optimizado genera planes de ejecucin que describen los posibles mtodos de ejecucin. El optimizador determina que plan de ejecucin es ms eficiente considerando varias fuentes de informacin, incluyendo condiciones de la consulta, caminos de acceso disponibles, estadsticas recopiladas por el sistema, y consejos. Para cualquier sentencia SQL procesada por Oracle, el optimizador realiza las siguientes operaciones: Evaluacin de expresiones y condiciones Inspeccin de las restricciones de integridad para aprender ms sobre los datos y optimizar basado en la metadata Transformacin de Sentencias Eleccin de los objetivos del optimizador Eleccin de los caminos de acceso Eleccin de las ordenes join El optimizador genera la mayora de los caminos posibles para el procesamiento de una consulta y asigna un costo a cada paso en el plan de ejecucin generado. El plan con el menor costo es escogido como el plan de consulta para ser ejecutado. Se puede influir en las elecciones optimizador mediante el establecimiento de la meta del optimizador y mediante la recopilacin de estadsticas representativas para este. Por ejemplo, Se puede fijar el objetivo optimizador para cualquiera de los siguientes casos: el rendimiento total ALL_ROWS obliga al optimizador a obtener la ltima fila del resultado de la consulta lo ms rpido posible. Tiempo de respuesta inicial FIRST_ROWS indica al optimizador que debe obtener la primera fila del resultado de la consulta cliente lo ms rpido posible.

Pgina 53

Arquitectura de Base de Datos Oracle


Un tpico usuario final, con aplicaciones interactivas se beneficiara de la optimizacin de tiempo de respuesta inicial, mientras que un lote en modo no interactivo de aplicaciones se beneficiar ms de la optimizacin del rendimiento total.

Componentes del Optimizador


El optimizador tiene tres componentes principales, que se muestran en la siguiente figura:

La entrada al optimizador es una consulta analizada. El optimizador realiza las siguientes operaciones: El optimizador recibe las consultas analizas y genera un conjunto de posibles planes de la sentencia SQL basados en los caminos de acceso disponibles y sugerencias. El optimizador estima que el costo de cada plan en base a las estadsticas en el diccionario de datos. El costo es de un valor estimado proporcional a la utilizacin de los recursos necesarios para ejecutar la sentencia con un plan en particular. El optimizador compara los costos de los planes y elige el plan de menor costo, conocido como el plan de consulta, para pasar al generador de origen de la fila.

Transformador de la Consulta
El transformador de consulta determina si es til cambiar la forma de la consulta para que el optimizador pueda generar un plan de ejecucin mejor. La entrada al transformador de consulta es una consulta analizada, la cual est representada por un conjunto de bloques de consulta.

Pgina 54

Arquitectura de Base de Datos Oracle

Estimador
El estimador determina el costo total de un plan de ejecucin determinado. El estimador genera tres tipos de medidas para lograr este objetivo: selectividad Esta medida representa una fraccin de las filas de un conjunto de filas. La selectividad est vinculado a un predicado de la consulta, tales como apellido = 'Smith', o una combinacin de predicados. cardinalidad Esta medida representa el nmero de filas de un conjunto de filas. costo Esta medida representa las unidades de trabajo o de recursos utilizados. El optimizador de consultas utiliza las I/O de disco, el uso de CPU y uso de la memoria como unidades de trabajo. Si se dispone de estadsticas, el estimador las utiliza para calcular las medidas. Las estadsticas mejoran el grado de precisin de las medidas.

Generador del Plan


El generador del plan trata con diferentes planes para una consulta enviada y escoge el plan con el menor costo. El optimizador genera subplanes para cada una de las subconsultas anidadas y puntos de vista sin combinar, que es representada por un bloque de consulta independiente. El Generador del Plan explora diversos planes para un bloque de consulta al probar diferentes caminos de acceso, mtodos de combinacin, y rdenes join. El optimizador automticamente administra los planes y asegura que slo planes verificados se utilizan. SQL Plan de Gestin (SPM) permite controlar la evolucin del plan, utilizando nicamente un nuevo plan despus de que se ha comprobado que se obtienen mejores resultados que el plan actual. Herramientas de diagnstico tales como la declaracin EXPLAIN PLAN le permiten ver los planes de ejecucin elegido por el optimizador. EXPLAIN PLAN muestra el plan de consulta para la consulta SQL se especifica si fueron ejecutados hoy en la sesin actual.

Caminos de Acceso
Un camino de acceso es la forma en que se recuperan los datos de la base de datos. Por ejemplo, una consulta que utiliza un ndice tiene una ruta de acceso diferente a una consulta que no. En general, los caminos de acceso con ndices son los mejores para las declaraciones que recuperan un pequeo subconjunto de filas de la tabla. Los anlisis completos son ms eficientes para acceder a una gran parte de la tabla. La base de datos puede utilizar diferentes caminos de acceso para recuperar datos de una tabla:

Pgina 55

Arquitectura de Base de Datos Oracle


Anlisis completos de la tabla Este tipo de escner lee todas las filas de una tabla y filtra aquellos que no cumplen con los criterios de seleccin. La base de datos escanea de forma secuencial todos los bloques de datos en el segmento, incluyendo aquellos bajo la marca de agua que separa el espacio no utilizado del utilizado. Anlisis del ROWID El ROWID de una fila especifica el archivo de datos y el bloque de datos que contiene la fila y la ubicacin de la fila en ese bloque. Primero la base de datos obtiene el ROWID de las filas seleccionadas, ya sea desde la declaracin de la clusula WHERE o por medio de una exploracin de ndice, y localiza cada fila seleccionada en funcin de su ROWID. Anlisis de los ndices Este anlisis busca en un ndice de los valores de columna indexados accedidos por la sentencia SQL. Si la declaracin slo tiene acceso a las columnas del ndice, Oracle Database lee los valores de columna indexados directamente desde el ndice. Anlisis de Clster Un anlisis de clster es utilizado para recuperar datos de una tabla almacenada en una tabla clster indexada, donde todas las filas con la misma llave clster son almacenadas en el mismo bloque de datos. La base de datos obtiene primero el rowid de una fila selecciona mediante el escaneo del ndice clster. Oracle Databsae localiza las filas basadas en este rowid. Anlisis Hash Un anlisis hash es utilizado para localiza las tilas en un clster hash, donde todas las filas con el mismo valor hash estn almacenados en el mismo bloque de datos. La base de datos primero obtiene el valor hash aplicando una funcin hash al valor de la llave clster especificado en la sentencia. Oracle Database entonces analiza los bloques de datos que contienen filas con este valor hash. El optimizador elige un camino de acceso basado en los caminos de acceso disponible para la instruccin y el costo estimado de uso de cada ruta de acceso o una combinacin de caminos.

Estadsticas del Optimizador


Las estadsticas del optimizador son una coleccin de fatos que describen detalladamente sobre la base de datos y los objetos de la base de datos. Las estadsticas proveen una estadsticamente correcta imagen de los datos almacenados y la distribucin de su uso por el optimizador a la hora de evaluar los caminos de acceso. Las estadsticas del optimizador incluyen lo siguiente: Estadsticas de tablas Estas incluyen el nmero de filas, numero de bloques, y promedio del tamao de las filas. Estadsticas de columnas Estas incluyen el nmero de valores distintos y los nulos en una columna y la distribucin de datos. Estadsticas de ndices

Pgina 56

Arquitectura de Base de Datos Oracle


Estas incluyen el nmero de bloques de hojas y niveles del ndice. Estadsticas del sistema Estas incluyen CPU y I/O rendimiento y utilizacin Oracle Database recoge las estadsticas del optimizador en todos los objetos de base de datos de forma automtica y mantiene estas estadsticas como una tarea de mantenimiento automatizado. Tambin se pueden recoger estadsticas manualmente utilizando el paquete DBMS_STATS. Este paquete PL/SQL permite modificar, ver, exportar , importar y borrar estadsticas. La estadsticas del optimizador son creadas con el propsito de optimizar la consulta y son almacenadas en el diccionario de datos. Estas estadsticas no deben confundirse con las estadsticas de rendimiento visible a travs de vistas de rendimiento dinmico.

Sugerencias del Optimizador


Una sugerencia es un comentario en una sentencia SQL que acta como una instruccin para el optimizador. Algunas veces el diseador de la aplicacin, tiene ms informacin sobre los datos particulares de la aplicacin entonces est habilitado para optimizar, puede escoger un camino ms efectivo para ejecutar la sentencia SQL. El diseador de la aplicacin puede utilizar sugerencias en las sentencias SQL para especificar como la sentencia debera de ser ejecutada.

Pgina 57

Arquitectura de Base de Datos Oracle

ARQUITECTURA DE SUBPROCESOS Y TAREAS


Un proceso es un mecanismo en un sistema operativo que puede ejecutar una serie de pasos. El mecanismo depende del sistema operativo. Por ejemplo, en Linux un proceso en segundo plano de Oracle es un proceso Linux. En Windows, un proceso en segundo plano de Oracle es un hilo de ejecucin dentro de un proceso. Mdulos de cdigo son ejecutados por procesos, Cuando un usuario se conecta a una base de datos de Oracle ejecuta dos mdulos de cdigo diferentes, que adems el encargado de gestionar estos procesos es el sistema operativo, estos dos mdulos diferentes son: Aplicacin o Herramienta Oracle: normalmente son programas clientes que se conectan a la base de datos y permiten ejecutar sentencias SQL. Ej.: SQL*Plus, SQL developer Cdigo del servidor de Oracle: son los diferentes procesos que se han de ejecutar en el servidor para atender las peticiones del usuario.

Mltiples procesos de Oracle Database Systems


La base de datos Oracle es un sistema multiproceso, lo que significa que no toda la base de datos est corriendo en un mismo proceso, si no que varias partes de la base de datos se ejecuta concurrentemente. Permitiendo a mltiples usuarios conectarse a la misma vez, y mayor rapidez en el tiempo de respuesta, puesto que siempre que pueda va a utilizar al mximo al ordenador, por ejemplo si tiene ocho ncleos el servidor, y resulta que una peticin se puede paralelizar se ejecutara esa peticin por partes en cada ncleo. Cada proceso en una instancia de base de datos realiza un trabajo especfico. Al dividir el trabajo de la base de datos y aplicaciones en varios procesos, mltiples usuarios y las aplicaciones pueden conectarse a una instancia de forma simultnea, mientras que el sistema proporciona un buen rendimiento.

Pgina 58

Arquitectura de Base de Datos Oracle

Procesos de Oracle y la SGA

Tipos de procesos
Una instancia de base de datos contiene o interacta con los siguientes tipos de procesos: Proceso de usuario Procesos del servidor Procesos en segundo plano obligatorios: DBWn, PMON CKPT, LGWR SMON Procesos en segundo plano opcionales: ARCn LMDn QMNn, CJQ0 LMON RECO, Dnnn LMS Snnn, LCKn Pnnn Procesos esclavos

Pgina 59

Arquitectura de Base de Datos Oracle Procesos de Usuario


Lanzado por el usuario para pedir interaccin con la base de datos, Cuando un usuario ejecuta una aplicacin como un Pro * C programa o SQL * Plus, el sistema operativo crea un proceso de cliente (a veces llamado un proceso de usuario) para ejecutar la aplicacin de usuario. La aplicacin cliente tiene bibliotecas de Oracle de base de datos vinculados a ella que proporcionan las API necesarias para comunicarse con la base de datos. Los procesos de usuario difieren en aspectos importantes de los procesos de Oracle. Los procesos de Oracle servicio del proceso cliente puede leer y escribir en el SGA, mientras que el proceso del cliente no puede. Un proceso cliente se puede ejecutar en un host distinto al equipo base de datos, mientras que los procesos de Oracle no pueden.

Conexiones y sesiones Una conexin es una va de comunicacin fsica entre un cliente y el proceso de una instancia de base de datos. Una va de comunicacin se establece mediante los mecanismos disponibles de comunicacin entre procesos o software de red. Por lo general, se produce una conexin entre un proceso de cliente y un proceso de servidor o distribuidor, pero tambin puede ocurrir entre un proceso cliente y el Administrador de conexin de Oracle (CMAN). Una sesin es una entidad lgica en la memoria de instancia de base de datos que representa el estado de una sesin de usuario actual a una base de datos. Por ejemplo, cuando un usuario est autenticado por la base de datos con una contrasea, se establece una sesin para este usuario. Una sesin dura desde el momento en que el usuario se autentica en la base de datos hasta el momento en que el usuario se desconecta o sale de la aplicacin de base de datos. Mltiples sesiones pueden existir simultneamente para un usuario de base de datos nica. En las conexiones de servidor dedicado, la base de datos crea un proceso de servidor en nombre de cada conexin. En una conexin de servidor compartido, muchos de los procesos de cliente tienen acceso a un nico proceso de servidor compartido.

Pgina 60

Arquitectura de Base de Datos Oracle


Una sesin para cada conexin

Dos sesiones en una conexin

Procesos del Servidor


Oracle Database crea procesos de servidor para manejar las peticiones de los procesos de cliente que se conectan a la instancia. Un proceso cliente siempre se comunica con una base de datos a travs de un proceso de servidor independiente. Se utilizan como manejadores de los procesos de usuario. Los comandos de usuario se envan a estos procesos que se encargan de solicitar peticiones a la base de datos mediante el interfaz de programas de Oracle (OPI, Oracle Program Interface). Los procesos del servidor creados en nombre de una aplicacin de base de datos pueden realizar una o ms de las siguientes tareas: Analizar y ejecutar sentencias SQL emitidas a travs de la aplicacin, incluyendo la creacin y la ejecucin del plan de consulta (ver "Etapas de Procesamiento de SQL" ) Ejecucin de PL / SQL Leer bloques de datos de archivos de datos en la cach del bfer de base de datos (el proceso de DBW n de fondo tiene la tarea de escribir los bloques modificados al disco)

Pgina 61

Arquitectura de Base de Datos Oracle


Devolver los resultados de tal manera que la aplicacin puede procesar la informacin En las conexiones de servidor dedicado, la conexin del cliente se asocia con slo un proceso de servidor, Cada proceso cliente se comunica directamente con el proceso servidor. Este proceso del servidor se dedica a su proceso de cliente durante la duracin de la sesin. En las conexiones de servidor compartido, las aplicaciones cliente se conectan a travs de una red a un proceso de despachador, no un proceso de servidor. El proceso despachador recibe peticiones de clientes vinculados entre s y las pone en una cola de solicitudes, Como un proceso de servidor dedicado, un proceso servidor compartido tiene su propia PGA. Sin embargo, la UGA de una sesin est en el SGA de manera que cualquier servidor compartido puede tener acceso a datos de la sesin.

Procesos en segundo plano


Una base de datos Oracle multiproceso utiliza algunos procesos adicionales llamados procesos en segundo plano. Los procesos en segundo pEs el encargado de gestionar adecuadamente los procesos que fallan. Ante cadas de procesos, PMON se encarga de restaurar los datos adecuadamente lano realizan tareas de mantenimiento requeridas para operar la base de datos y para maximizar el rendimiento para mltiples usuarios. Oracle database crea procesos en segundo plano de forma automtica cuando una instancia de base de datos se inicia. Una instancia puede tener muchos de los procesos en segundo plano, no todos los que siempre existen en todas las configuraciones de base de datos.

Procesos en segundo plano obligatorios DBWn (Escritor de base de datos) : Proceso encargado de escribir en los ficheros de datos los buffers ms antiguos de la memoria, para que la base de datos vaya almacenando los cambios. Escribe si: o o o o o o o o o Se produce un punto de control Los buffers sucios alcanzan el umbral No hay ningn buffer libre Se produce un timeout Se realiza un solicitud de sondeo RAC Tablespace OFFLINE Tablespace READ ONLY Tabla DROP o TRUNCATE Tablespace BEGINBACKUP

Pgina 62

Arquitectura de Base de Datos Oracle

LGWR (Escritura de logs): Escribe los datos a los ficheros rehacer (redo) desde la cach de archivos rehacer. LGWR escribe: En la validacin Si se llena a un tercio de su capacidad Si hay 1MB de redo Cada tres segundos Antes de que escriba DBWn

SMON (Monitor del sistema): Permite recuperar la instancia de la base de datos en caso de cada fatal (cuando el sistema falla por ejemplo). Responsabilidades: Recuperacin de instancias - Aplica los cambios pendientes en los archivos redo log online - Abre la base de datos para que acceda el usuario - Deshace las transacciones no validadas Fusiona el espacio libre Libera los espacios temporales

PMON (Monitor de procesos): Es el encargado de gestionar adecuadamente los procesos que fallan. Ante cadas de procesos, PMON se encarga de restaurar los datos adecuadamente, hace una limpieza cuando los procesos han fallado: Haciendo un rollback en las transacciones Liberando los bloqueos Liberando otros recursos Reiniciando distribuidores interrumpidos

CKPT (Punto de control): Es un evento de sincronizacin en un punto especfico en el tiempo, un punto de control realiza las siguientes tres operaciones:

Pgina 63

Arquitectura de Base de Datos Oracle


1. Cada bloque sucio en la cach del bfer se escribe en el archivo de datos . Es decir, se sincroniza el datablocks en la cach del bfer con el archivo de datos en el disco. Es el DBWR que escribe todos los databaseblocks modificados a los ficheros de datos. 2. La ltima SCN est escrito (actualizado) en el encabezado del archivo de datos . 3. La ltima SCN tambin se escribe en el ControlFiles . Actualiza todas las cabeceras de los ficheros de datos para que aparezca la nueva disposicin de datos. Esto ocurre cuando se genera un punto de comprobacin. La fecha y hora del ltimo punto de control puede ser recuperada a travs de checkpoint_time en v$datafile_header. El SCN del ltimo punto de control se pueden encontrar en v$database . checkpoint_change #. Si el tamao del registro de rehacer es pequea, el desempeo del puesto de control no ser ptima. Es responsable de: Sealar a DBWn en los puntos de control Actualizar las cabeceras de archivos de datos con informacin del punto de control Actualizar los archivos de control con informacin del punto de control

Eventos que desencadenan un punto de control: Un cambio de redo log LOG_CHECKPOINT_TIMEOUT ha expirado LOG_CHECKPOINT_INTERVAL se ha alcanzado DBA as lo requiera ( alterar puesto de control del sistema ) Adems, si un espacio de tablas es de backups en caliente , un punto de control para el espacio de tablas en cuestin est llevando a cabo. Mientras que cambia de registro de rehacer causa un puesto de control, puestos de control no causen un cambio de registro

Tipos de Checkpoint: Full Checkpoint Thread Checkpoint File Checkpoint Object Checkpoint Parallel Query Checkpoint Incremental Checkpoint Log Switch Checkpoint

Pgina 64

Arquitectura de Base de Datos Oracle


Procesos en segundo plano opcionales ARCn (Archiver): Copia los archivos de registro en lnea para rehacer el almacenamiento fuera de lnea despus de que ocurre un cambio de redo log. o Archiva automticamente archivos redo log online si est definido el modo ARCHIVELOG Protege el registro contra todos los cambios realizados en la base de datos

RECO (Recoverer): Este proceso solo se observa cuando la base de datos ejecuta la opcin distribuida de Oracle. La transaccin distribuida es una en la que dos o ms emplazamientos de datos deben mantenerse sincronizados, Por ejemplo cuando se tiene una copia de los datos en diferentes ciudades y por fallas en una lnea telefnica se pierde una transaccin en la mitad de su actualizacin. El proceso recuperador entonces resuelve las transacciones que hayan quedado inconsistentes en las dos ciudades. LCKN (Lock): Es un proceso opcional, configurado para manejar los bloqueos entre bases de datos Oracle cuando estas se encuentran en distintos computadores y compartiendo el mismo conjunto de discos (es decir en modo servidor en paralelo). QMNn (Queue Monitor): QMNn es un proceso opcional de background para el encolamiento avanzado de Oracle, que monitorea las colas de mensajes. El encolamiento avanzado se usa con comunicacin asncrona. Los procesos envan los mensajes y en lugar de esperar por la respuesta siguen con su trabajo. Dnnn (Dispatcher): Es un proceso opcional que permite a los usuarios compartir procesos de servidor. Permitiendo que se conecten mltiples usuarios al mismo servidor. Snnn (Shared Server): Este tipo proceso se encarga de atender a cada uno de los clientes conectados a la base de datos compartiendo los procesos del servidor. Adems de estos existen otros como: LMDn, CJQ0, LMON, LMS, Pnnn.

Procesos esclavos
Realizan tareas adicionales para un proceso en segundo plano o en el servidor, son los procesos de fondo que realizan trabajo en nombre de otros procesos. Entre los cuales tenemos: I / O Procesos Esclavo Los esclavos de consultas en paralelo

Pgina 65

Arquitectura de Base de Datos Oracle

ARQUITECTURA DE ADMINISTRACIN DE MEMORIA


Oracle utiliza la memoria para almacenar informacin como la siguiente: El cdigo de programa La informacin sobre una sesin conectada, incluso si no est activa La informacin necesaria durante la ejecucin del programa (por ejemplo, el estado actual de una consulta de las filas que se han recuperado) La informacin que se comparte y se comunica entre los procesos de Oracle Cach de datos que tambin se almacenan permanentemente en la memoria perifrica Las estructuras de memoria bsicos asociados con Oracle incluyen: Sistema Global Area (SGA), que es compartida por todos los servidores y el fondo los procesos. reas de Programa Global (PGA), que es privada para cada servidor y el fondo proceso, hay un PGA para cada proceso.

System Global Area


Es un grupo de estructuras de memoria compartida que contienen datos e informacin de control para una instancia de base de datos Oracle. Si hay varios usuarios conectados simultneamente a la misma instancia, los datos en el SGA de la instancia se comparten entre los usuarios. En consecuencia, el SGA se denomina a veces el rea global compartida. Un SGA y los procesos de Oracle constituyen una instancia de Oracle. Oracle automticamente asigna memoria para un SGA cuando se inicia una instancia, y el sistema operativo reclama la memoria cuando se cierra la instancia. Cada instancia tiene su propio SGA.

Pgina 66

Arquitectura de Base de Datos Oracle


El SGA es de lectura / escritura. Todos los usuarios conectados a un mltiple proceso de instancia de base de datos pueden leer la informacin contenida en SGA de la instancia, y varios procesos de escribir en el SGA durante la ejecucin de Oracle. El SGA contiene las estructuras de datos siguientes: Base de datos cach del bfer Redo log buffer Shared pool Java pool Large pool Streams pool Diccionario de datos de cach Informacin miscelnea Parte de la SGA contiene informacin general sobre el estado de la base de datos y la ejemplo, que los procesos de fondo necesario para acceder a lo que se llama la SGA fija. No hay datos de usuario se almacena aqu. El SGA tambin incluye informacin transmitida entre los procesos, como el bloqueo de la informacin. Si el sistema utiliza una arquitectura de servidor compartido, la solicitud y las colas de respuesta y algunos de los contenidos de la PGA se encuentran en el SGA. El SGA cuenta con un nmero de componentes de memoria, que son las piscinas de la memoria utilizados para satisfacer una determinada clase de peticiones de asignacin de memoria. Ejemplos de la memoria componentes incluyen la piscina compartida (se utiliza para asignar memoria para SQL y PL/SQL ejecucin), el grupo de java (para objetos Java y otra memoria de ejecucin de Java), y la cach del bfer (utilizado para la cach de bloques de disco). Todos los componentes SGA asignar y cancelar la asignacin de espacio en unidades de grnulos. Oracle Database rastrea el uso de memoria SGA en nmeros internos de los grnulos de cada componente SGA. Tamao del grano se determina por el total de tamao de SGA. En la mayora de las plataformas, el tamao de un grnulo es de 4 MB, si el tamao total de SGA es menos de 1 GB, y el tamao de los grnulos es de 16 MB para las grandes SGA. Algunas dependencias de la plataforma surgir. Por ejemplo, en Windows de 32 bits, el granulometra es de 8 M de SGA ms de 1 GB. Oracle Database pueden establecer lmites en la cantidad de memoria virtual de la base de datos utiliza para la SGA. Se puede comenzar con los casos un mnimo de memoria y permitir que el ejemplo de un uso ms la memoria mediante la ampliacin de la memoria asignada para los componentes de SGA, hasta un mximo determinado por el parmetro de inicializacin SGA_MAX_SIZE. Si el valor de SGA_MAX_SIZE en el archivo de parmetros de inicializacin o el archivo de parmetros del servidor (SPFILE) es menor que la suma de la memoria asignada a todos los componentes, ya sea de forma explcita en el parmetro archivo o en su defecto, a la vez se inicializa la instancia, la base de datos no escenario de SGA_MAX_SIZE.

Pgina 67

Arquitectura de Base de Datos Oracle


Para un rendimiento ptimo en la mayora de los sistemas, todo el SGA debe caber en la memoria real. Si no lo hace, y si se utiliza memoria virtual para almacenar partes de ella, entonces la base de datos global el rendimiento del sistema puede disminuir drsticamente. La razn de esto es que las porciones del SGA se paginan (escribir y leer desde el disco) por el sistema operativo. La cantidad de memoria dedicada a todas las reas comunes en la SGA tambin tiene un rendimiento impacto. Los siguientes parmetros tienen el mayor efecto en el tamao de SGA: Parmetro DB_CACHE_SIZE LOG_BUFFER Descripcin El tamao de la cach de bloques estndar. El nmero de bytes asignados para el buffer de redo log. El tamao en bytes de la superficie dedicada a compartir SQL y PL / SQL. El tamao de la piscina grande, el valor predeterminado es 0. El tamao de la piscina de Java.

SHARED_POOL_SIZE

LARGE_POOL_SIZE

JAVA_POOL_SIZE

Automatic Shared Memory Management


En versiones anteriores de bases de datos, un administrador de base de datos (DBA) se deben especificar manualmente diferentes tamaos de los componentes SGA mediante el establecimiento de una serie de parmetros de inicializacin, incluyendo los parmetros SHARED_POOL_SIZE, DB_CACHE_SIZE, JAVA_POOL_SIZE, y LARGE_POOL_SIZE. A partir de Oracle Database 10g incluye Automatic Shared Memory Management caracterstica que simplifica la gestin de memoria SGA de manera significativa. El DBA puede simplemente especificar la cantidad total de memoria SGA a disposicin de una instancia mediante el parmetro de inicializacin SGA_TARGET y la Base de Datos Oracle distribuir automticamente esta memoria entre los diversos subcomponentes para asegurar una utilizacin ms eficaz de la memoria. Cuando la gestin automtica de memoria SGA est activada, los tamaos de los diferentes componentes del SGA son flexibles y pueden adaptarse a las necesidades de una carga de trabajo sin necesidad de ninguna configuracin adicional. La base de datos de forma automtica distribuye la memoria disponible entre los diversos componentes segn sea necesario, permitiendo que el sistema para maximizar el uso de todos los disponibles de memoria SGA.

Pgina 68

Arquitectura de Base de Datos Oracle


Cada vez que un componente de las necesidades de memoria, puede solicitar que se transfiere de otro componente a travs del mecanismo de ajuste automtico interno. Esta transferencia de la memoria ocurre de forma transparente, sin intervencin del usuario. El rendimiento de cada uno de estos componentes por tamao es supervisada por el Instancia de Oracle Database. El ejemplo utiliza la informacin sobre la empresa y las estadsticas para determinar cmo se distribuye la memoria de manera ptima entre los componentes. A medida que la carga de trabajo cambios, la memoria se redistribuye para garantizar un rendimiento ptimo. Para calcular el distribucin ptima de la memoria, la base de datos utiliza un algoritmo que tiene en cuenta tanto a largo como a corto plazo las tendencias.

Administracin de forma manual de los componentes SGA


Hay algunos componentes de SGA cuyo tamao no se ajusta automticamente. El administrador tiene que especificar el tamao de estos componentes de manera explcita, si es necesario por la aplicacin. Dichos componentes son: Mantenimiento / reciclaje cach de bfer (controlada por DB_KEEP_CACHE_SIZE and DB_RECYCLE_CACHE_SIZE) Depsitos adicionales de amortiguacin para los tamaos de bloque no estndar (controlada por DB_nK_CACHE_SIZE, n = {2, 4, 8, 16, 32}) El tamao de estos componentes est determinado por el administrador define el valor de sus parmetros correspondientes. Estos valores pueden, por supuesto, puede cambiar en cualquier momento ya sea mediante Enterprise Manager o desde la lnea de comandos con un ALTER SYSTEM declaracin. La memoria consumida por los componentes manualmente tamao reduce la cantidad de memoria disponible para el ajuste automtico. Oracle Database recuerda el tamao de los componentes ajustados automticamente a travs de paradas ejemplo, si usted est usando un archivo de parmetros del servidor (SPFILE). Como resultado, el sistema es necesario conocer las caractersticas de la carga de trabajo de nuevo cada vez que un ejemplo, se ha iniciado. Se puede comenzar con la informacin de la instancia del pasado y siguen la evaluacin de la carga de trabajo donde lo dej en la ltima parada. Un administrador de base de datos se expande el uso de SGA de un componente con un "ALTER SYSTEM" declaracin de modificar los valores de los parmetros de inicializacin asociada con los respectivos componentes. Rondas de Oracle Database hasta el tamao de las nuevas especificaciones al mltiplo ms cercano de 16 MB y aade o elimina grnulos para cumplir con el tamao de destino. La base de datos debe tener grnulos libre suficiente para satisfacer la solicitud. Siempre y cuando la cantidad de memoria actual SGA es menor que "SGA_MAX_SIZE", la base de datos puede asignar ms grnulos hasta que el tamao de SGA alcanza "SGA_MAX_SIZE".

Pgina 69

Arquitectura de Base de Datos Oracle


El tamao de los grnulos que se est utilizando actualmente para el SGA para cada componente se puede ver en la vista V$SGAINFO. El tamao de cada componente y el tiempo y el tipo de la operacin de redimensionamiento actu por ltima vez en cada componente se puede ver en la vista V$SGA_DYNAMIC_COMPONENTS. La base de datos mantiene un buffer circular de las operaciones de cambio de tamao ltimos 400 en los componentes SGA. Puede ver el buffer circular en la vista V$SGA_RESIZE_OPS.

Database Buffer Cache


El cach del bfer de base de datos es la parte de la SGA que mantiene copias de los bloques de datos leer archivos de datos. Todos los procesos del usuario conectado simultneamente a la cuota de ejemplo el acceso a la cach del bfer de base de datos. El cach del bfer de base de datos y la memoria cach compartida de SQL son lgicamente segmentada en varios conjuntos. Esta organizacin en varios conjuntos se reducen los conflictos en multiprocesador sistemas. Los buffers en la cach se organizan en dos listas: la lista de escribir y la lista de por lo menos recientemente usado (LRU). La lista de escribir tiene buffers que contienen datos que se ha modificado pero an no ha sido escrito en el disco. La lista LRU tiene buffers libres, buffers clavado, y buffers que an no han sido trasladados a la lista de escritura. Buffers libres no contiene ningn dato til y estn disponibles para su uso. Topes fijos son en la actualidad se est accediendo. Cuando un proceso Oracle accede a un buffer, el proceso se mueve al buffer de la utilizada ms recientemente (MRU) al final de la lista LRU. La primera vez que un proceso de usuario de Oracle requiere un dato concreto, se busca los datos en la cach del bfer de base de datos. Si el proceso se encuentra ya en los datos de la cach (un acierto de cach), se puede leer los datos directamente desde la memoria. Si el proceso no puede encontrar el datos de la cach (un error de cach), se debe copiar el bloque de datos de un archivo de datos en el disco en un bfer en la memoria cach antes de acceder a los datos. Acceso a datos a travs de una de aciertos de cach es ms rpido que el acceso a datos a travs de un fallo de cach. Antes de leer un bloque de datos en la cach, el proceso debe primero encontrar un buffer libre. La proceso busca en la lista LRU, comenzando en el extremo menos utilizado de la lista. La Bsquedas proceso o hasta que encuentra un buffer libre o hasta que se haya buscado el umbral lmite de buffers. Si el proceso de usuario encuentra un buffer sucio, ya que busca en la lista LRU, que se mueve el buffer a la lista de escribir y sigue buscando. Cuando el proceso encuentra un buffer libre, se lee el bloque de datos desde el disco en el buffer MRU y el buffer se mueve hasta el final de la LRU lista. Si un proceso de usuario de Oracle busca en el lmite del umbral de buffers sin

Pgina 70

Arquitectura de Base de Datos Oracle


encontrar un libre buffer, el proceso deja de buscar la lista LRU y las seales de fondo DBW0 proceso de escribir algunos de los buffers modificados al disco.

El algoritmo LRU y Anlisis Completo


Cuando el proceso de usuario est realizando un escaneo completo de tabla, lee los bloques de la tabla en los buffers y los coloca en el extremo LRU (en lugar de al final MRU) de la lista LRU. Esto se debe a una tabla totalmente digitalizadas por lo general se necesita slo brevemente, por lo que los bloques debe moverse rpidamente para salir de los bloques utilizados con ms frecuencia en la memoria cach. Puede controlar este comportamiento por defecto de los bloques que participan en los recorridos de tablas en una base de mesa por mesa. Para especificar que los bloques de la tabla se coloca al final de la lista MRU durante un escaneo completo de tabla, utilice la clusula CACH al crear o modificar una tabla o clster. Puede especificar este comportamiento para tablas de bsqueda de pequeos o grandes tablas histricas esttica para evitar que E / S en los accesos posteriores de la tabla. Puede configurar la cach del bfer de base de datos con depsitos reguladores independientes que, o bien mantener los datos en la cach del bfer o hacer que los bferes disponibles para los nuevos datos inmediatamente despus de usar los bloques de datos. Objetos particulares esquema (tablas, clusters, ndices y particiones) puede ser asignado a la agrupacin de almacenamientos intermedios adecuadas para controlar la forma en que los bloques de datos de edad fuera de la cach. El grupo KEEP de bfer conserva los bloques el objeto de esquema de datos en la memoria. El grupo RECYCLE de bferes, elimina los bloques de datos de la memoria tan pronto como se ya no son necesarios. El grupo de bfer predeterminado contiene bloques de datos de objetos de esquema que no estn asignados a ningn grupo de bfer, as como los objetos de esquema que se ha asignado explcitamente a la piscina DEFAULT. Los parmetros de inicializacin que configuran el KEEP y RECYCLE agrupaciones de almacenamientos intermedios se DB_KEEP_CACHE_SIZE and DB_RECYCLE_CACHE_SIZE.

Redo Log Buffer


Es un buffer circular en el SGA que contiene informacin sobre los cambios realizados a la base de datos. Esta informacin se almacena en las entradas de redo. Entradas de redo contienen la informacin necesaria para reconstruir o rehacer los cambios realizados en la base de datos de INSERT, UPDATE, DELETE, CREATE, ALTER o DROP operaciones. Entradas de redo se utilizan para la recuperacin de la base de datos, si es necesario. Entradas de redo son copiadas por los procesos de base de datos Oracle desde el espacio de memoria del usuario para el buffer de redo log en la SGA. Las entradas de redo ocupan un

Pgina 71

Arquitectura de Base de Datos Oracle


espacio continuo y secuencial en el bfer. El proceso en segundo plano LGWR escribe el buffer de redo log en el archivo de redo log activo (o grupo de archivos) en el disco. El parmetro de inicializacin "log_buffer" determina el tamao (en bytes) del bfer de registro de rehacer. En general, los valores ms altos reducen el archivo de registro de E / S, sobre todo si las transacciones son largos o numerosos. La configuracin predeterminada es de 512 kilobytes (KB) o 128 veces la KB valor del parmetro CPU_COUNT, el que sea mayor,

Shared Pool
Es una parte de la SGA contiene el cach de la biblioteca, la cach de diccionario, buffers para los mensajes de la ejecucin en paralelo, y las estructuras de control. El tamao total de la piscina comunitaria est determinado por el parmetro de inicializacin SHARED_POOL_SIZE. El valor predeterminado de este parmetro es de 8MB en plataformas de 32 bits y 64 MB en plataformas de 64 bits. Aumentar el valor de este parmetro aumenta la cantidad de memoria reservada para la piscina comunitaria.

Library Cache
El cach de biblioteca incluye las zonas comunes de SQL, SQL reas privadas (en el caso de una configuracin de servidor compartido), los procedimientos PL / SQL y paquetes, y las estructuras de control tales como cerraduras y cach de biblioteca se ocupa. reas compartidas de SQL sean accesibles a todos los usuarios, por lo que el cach de biblioteca se encuentra en la zona compartida en el SGA. Los procesos de PL/SQL unidades de programa (procedimientos, funciones, paquetes, bloques annimos y activa base de datos) de la misma manera que los procesos individuales de sentencias SQL. Oracle asigna un rea comn para mantener la analizada, en forma compilada de una unidad de programa. Oracle asigna un rea privada para contener los valores especficos de la sesin que se ejecuta la unidad de programa, incluso a nivel mundial locales, y las variables de paquetes (tambin conocido como instanciacin del paquete) y buffers para la ejecucin de SQL. Si ms de un usuario ejecuta la misma unidad de programa, a continuacin, un espacio nico, compartido es utilizado por todos los usuarios, mientras que cada usuario mantiene una copia separada de su rea privada SQL, la celebracin de los valores especficos de su o su sesin. Instrucciones SQL individuales contenidos en una unidad de programa PL / SQL se procesan como descritos en los apartados anteriores. A pesar de sus orgenes dentro de un programa PL / SQL unidad, las instrucciones SQL utilice un rea compartida para mantener sus representaciones y analizar una rea privada para cada sesin que se ejecuta la instruccin.

Diccionario de cach
El diccionario de datos es una coleccin de tablas de bases de datos y puntos de vista que contiene referencia informacin sobre la base de datos, sus estructuras, y sus usuarios. Oracle

Pgina 72

Arquitectura de Base de Datos Oracle


accede al diccionario de datos con frecuencia durante el anlisis de instrucciones SQL. Este acceso es esencial para el funcionamiento continuo de Oracle. El diccionario de datos se accede con frecuencia por parte de Oracle de que dos lugares especiales en memoria designada para ocupar el diccionario de datos. Un rea que se llama el diccionario de datos cach, tambin conocido como el cach de la fila, ya que posee los datos de las filas en lugar de buffers (que poseen bloques enteros de datos). La otra rea en la memoria para mantener el diccionario de datos es la cach de la biblioteca. Todos los procesos de usuario de Oracle comparten estas dos caches para el acceso a los datos diccionario de la informacin.

Asignacin y reutilizacin de la Memoria en la zona compartida


En general, cualquier elemento (rea compartida de SQL o una fila diccionario) en la zona compartida permanece hasta que se limpia de acuerdo a un algoritmo modificado LRU. La memoria de los elementos que no estn siendo utilizados regularmente se libera si el espacio es necesario para los nuevos elementos que se deben asignar un espacio en la zona compartida. Un algoritmo LRU permite modificar los elementos compartidos de la piscina que son utilizados por muchas sesiones que permanecen en la memoria, siempre y cuando sean tiles, incluso si el proceso que cre originalmente el elemento termina. Como resultado, la sobrecarga y el procesamiento de sentencias SQL asociado a un sistema multiusuario Oracle se reduce al mnimo. Cuando una sentencia SQL es enviada a Oracle para su ejecucin, Oracle automticamente realiza los pasos siguientes de la memoria de la asignacin: 1. Oracle comprueba la piscina compartida para ver si un rea compartida de SQL ya existe una declaracin idntica. Si es as, que comparten rea de SQL se utiliza para la ejecucin de las instancias posteriores de la nueva declaracin. Por otra parte, si no hay un rea comn para una declaracin SQL, Oracle asigna un rea nueva de SQL compartido en la zona compartida. En ningn caso, la zona privada del usuario de SQL est asociada con el rea de SQL compartida que contiene la instruccin. 2. Oracle asigna un rea privada SQL en nombre de la sesin. La ubicacin de la zona privada de SQL depende del tipo de conexin establecida para la sesin.

Large Pool
El administrador de la base de datos se puede configurar un rea de memoria opcional llamado a large pool para proporcionar grandes asignaciones de memoria para: Sesin de memoria para el servidor compartido y la interfaz de Oracle XA (utilizado en las transacciones de interactuar con ms de una base de datos) E / S de los procesos del servidor Oracle copia de seguridad y las operaciones de restauracin

Pgina 73

Arquitectura de Base de Datos Oracle


Mediante la asignacin de memoria de la sesin de la large pool de servidor compartido, Oracle XA, o puerto paralelo de la consulta, Oracle puede utilizar la shared pool principalmente para el almacenamiento en cach compartida SQL y evitar la sobrecarga de rendimiento causada por la disminucin de la cach compartida de SQL. Adems, la memoria para copia de seguridad de Oracle y las operaciones de restauracin, para el servidor de E/S procesos, y para puerto paralelo se asigna en los buffers de unos pocos cientos de kilobytes. La large pool est en mejores condiciones para satisfacer tales solicitudes de grandes cantidades de memoria compartida de la piscina. La large pool no tiene una lista LRU. Es diferente de espacio reservado en el piscina comunitaria, que utiliza la misma lista LRU como la memoria de otro tipo asignados a la shared pool.

Java pool
Se usa en la memoria del servidor para todos los especficos de la sesin el cdigo de Java y los datos dentro de la JVM. Memoria de Java pool se utiliza de diferentes maneras, dependiendo de qu modo el servidor de Oracle se ejecuta en Java Pool estadsticas Asesor proporcionar informacin sobre la memoria cach de biblioteca utilizados para Java y predecir cmo los cambios en el tamao de la piscina de Java pueden afectar la tasa de analizar. El Asesor de piscina de Java se activa cuando internamente STATISTICS_LEVEL est establecido en Tpico o superior. Estas estadsticas restablece cuando el asesor se apaga.

Streams Pool
En una sola base de datos, puede especificar que la memoria de Corrientes harn con cargo a un fondo de la SGA llamado la streams pool. Para configurar el grupo de los flujos y especificar el tamao de la piscina, en bytes, utilizando el parmetro de inicializacin STREAMS_POOL_SIZE. Si un streams pool no se define, entonces se crea automticamente cuando las streams se utiliz por primera vez. Si SGA_TARGET est establecido, la memoria del SGA de la piscina viene de los Arroyos reserva mundial de SGA. Si SGA_TARGET no est definida, entonces SGA de la piscina es Streams transferidos desde la cach del bfer. Esta transferencia se lleva a cabo slo despus de que el primer uso de streams. El importe transferido es de 10% del tamao del pool compartido.

Control del Uso de la SGA de la Memoria


Dinmica SGA proporciona controles externos para aumentar y disminuir el uso de Oracle de la memoria fsica. Junto con dynamic buffer cache, shared pool, and large pool, dynamic SGA permiten lo siguiente:

Pgina 74

Arquitectura de Base de Datos Oracle


El SGA puede crecer en respuesta a una declaracin del administrador de base de datos, hasta un sistema operativo mximo especificado y la especificacin SGA_MAX_SIZE. El SGA puede reducir en respuesta a una declaracin del administrador de base de datos, a un mnimo de Oracle prescrito, por lo general un lmite del sistema operativo preferido. Tanto la cach del bfer y las piscinas SGA puede crecer o reducirse en tiempo de ejecucin de acuerdo con algunos internos, Oracle gestiona la poltica.

Pgina 75

Arquitectura de Base de Datos Oracle

Diagramas y documentacin de las bases de datos del sistema


Estructuras de almacenamiento de Oracle

Comparacin entre las bases de datos del sistema de Oracle y SQLServer

Pgina 76

Arquitectura de Base de Datos Oracle

Tablespace principales incluidos en la base de datos de Oracle. Tablespace


EXAMPLE

Descripcin Este tablespace contiene esquemas de ejemplo incluidos con Oracle Database. Los esquemas de ejemplo proporcionan una plataforma comn para ejemplos. La documentacin de Oracle y los materiales educativos contienen ejemplos basados en los esquemas de ejemplo. Este tablespace es automticamente creado en la creacin de la base de datos. Oracle Database lo utiliza para gestionar la base de datos. Contiene el diccionario de datos, que es el conjunto central de tablas y vistas utilizados como referencias de solo lectura por una base de datos en particular. Tambin contienen varias tablas y vistas que tienen informacin administrativa sobre la base de datos. Estos estn contenidos en el esquema SYS, y solo puede ser accedido por el usuario SYS u otro usuario administrativo que tenga los privilegios requeridos. Este es un tablespace auxiliar para el tablespace SYSTEM. El tablespace SYSAUX contiene datos de algunos de los componentes y productos, reduciendo la carga en el tablespace SYSTEM. Cada base de datos usando Oracle Database 10g release 1 (10.1) o superior debe de tener un tablespace SYSAUX. Los componentes que utilizan SYSAUX como su tablespace por defecto durante la instalacin incluyen Automatic Workload Repository, Oracle Streams, Oracle Text, y Database Control Repository.

SYSTEM

SYSAUX

TEMP

Este tablespace almacena datos temporales generados en el procesamiento de sentencias SQL. Por ejemplo, este tablespace podra ser usado por un ordenamiento. Cada base de datos debera de tener un tablespace temporal que sea asignado al usuario como su tablespace temporal. En la base de datos preconfigurada, el

Pgina 77

Arquitectura de Base de Datos Oracle


tablespace TEMP es especificado como el tablespace temporal por defecto. Si ningn tablespace temporal es especificado cuando la cuenta de usuario es creada, entonces Oracle Database asigna este tablespace al usuario.
UNDOTBS1

Este es un tablespace deshacer usado por la base de datos para almacenar informacin de deshacer. Este tablespace es usado para almacenar objetos y datos permanentes del usuario.. Similar al tablespace TEMP, cada base de datos debera de tener un tablespace para datos permanentes de usuario que es asignada a los usuarios. De otra manera, objetos del usuario debern ser creados en el tablespace SYSTEM, lo cual no es una buena prctica. En la base de datos preconfigurada, USERS es designado como tablespace por defecto para todos los nuevos usuarios.

USERS

Esquemas SYS y SYSTEM


Todas las bases de datos de Oracle incluyen cuentas administrativas por defecto. Estas cuentas administrativas son altamente privilegiados y estn destinados slo para los administradores de bases con autorizacin para realizar tareas tales como iniciar y detener la base de datos, gestin de memoria y almacenamiento, creacin y gestin de usuarios de bases de datos, y as sucesivamente. La cuenta administrativa SYS se crea automticamente cuando se crea una base. Esta cuenta puede llevar a cabo todas las funciones administrativas de base de datos. El esquema SYS almacena la base de las tablas y vistas para el diccionario de datos. Estas tablas de la base y vistas son fundamentales para el funcionamiento de la base de datos de Oracle. La tablas en el esquema SYS son manipulados slo por la base de datos y nunca deben de ser modificadas por cualquier usuario. La cuenta SYSTEM es creada automticamente tambin cuando la base de datos es creada. El esquema SYSTEM almacena tablas y vistas adicionales que muestran informacin administrativa, y tablas y vistas internas usadas por varias opciones y herramientas de Oracle Database. Nunca utilice el esquema SYSTEM para almacenar tablas de inters para usuarios no administrativos.

Catlogo de Datos
Oracle cuenta con una serie de tabla y vistas que conforman una estructura denominada catlogo. La principal funcin del catlogo de Oracle es almacenar toda la informacin de la estructura lgica y fsica de la base de datos, desde los objetos existentes, la situacin de los //datafiles//, la configuracin de los usuarios, etc.

Pgina 78

Arquitectura de Base de Datos Oracle


El catlogo sigue un estndar de nomenclatura para que su memorizacin sea ms fcil: Prefijos: || Prefijo || Descripcin || || DBA_ || Objetos con informacin de administrador. Slo accesibles por || || || usuarios con permisos DBA || || USER_ || Objetos con informacin propia del usuario al que estamos || || || conectado. Accesible desde todos los usuarios. Proporcionan || || || menos informacin que los objetos DBA_ || || ALL_ || Objetos con informacin de todos los objetos en base de datos. || || V_$ V$ || Vistas dinmicas sobre datos de rendimiento ||

Existe una tabla de catlogo para cada tipo de objeto posible. Su nombre aparecer en plural TABLES, VIEWS, SEQUENCES, TABLESPACES. Sabiendo qu objetos existen, y qu prefijos podemos utilizar, ya podemos acceder a los objetos del catlogo de Oracle. Ejemplos: || Objeto || Descripcin || || DBA_TABLES || Informacin para administradores de las tablas en base de || || || datos. || || USER_VIEWS || Informacin de las vistas creadas por el usuario desde el que || || || accedemos. || || ALL_SEQUENCES || Informacin de todas las secuencias existentes en base de datos. || || DBA_TABLESPACES || Informacin de administracin sobre los //tablespaces//. || || USER_TAB_COLUMNS || Todas las columnas de tabla en el usuario activo. ||

Los objetos de catlogo tambin guardan relaciones entre ellos. Por ejemplo, el objeto ALL_TABLES guarda una relacin 1-N con el objeto ALL_TAB_COLUMNS: Una tabla tiene N columnas. Existe un pseudo-usuario llamado PUBLIC el cual tiene acceso a todas las tablas del catlogo pblico. Si se quiere que todos los usuarios tengan algn tipo de acceso a un objeto, debe darse ese privilegio a PUBLIC y todo el mundo dispondr de los permisos correspondientes.

El catlogo pblico son aquellas tablas (USER_ y ALL_) que son accesibles por todos los usuarios. Normalmente dan informacin sobre los objetos creados en la base de datos.

Pgina 79

Arquitectura de Base de Datos Oracle


El catlogo de sistema (DBA_ y V_$) es accesible slo desde usuarios DBA y contiene tanto informacin de objetos en base de datos, como informacin especfica de la base de datos en s (versin, parmetros, procesos ejecutndose) Ciertos datos del catlogo de Oracle estn continuamente actualizados, como por ejemplo las columnas de una tabla o las vistas dinmicas (V$). De hecho, en las vistas dinmicas, sus datos no se almacenan en disco, sino que son tablas sobre datos contenidos en la memoria del servidor, por lo que almacenan datos actualizados en tiempo real. Algunas de las principales son: || || V$DB_OBJECT_CACHE: contiene informacin so bre los objetos que estn en el cach || || || del SGA || || || V$FILESTAT: contiene el total de lecturas y escrituras fsicas sobre un //data file// de la || || || base de datos. || || || V$ROLLSTAT: contienen informacin acerca de los segmentos de //rollback//. ||

Sin embargo hay otros datos que no pueden actualizarse en tiempo real porque penalizaran mucho el rendimiento general de la base de datos, como por ejemplo el nmero de registros de una tabla, el tamao de los objetos, etc. Para actualizar el catlogo de este tipo de datos es necesario ejecutar una sentencia especial que se encarga de volcar la informacin recopilada al catlogo: ANALYZE [TABLE|INDEX] nombre [COMPUTE|ESTIMATE|DELETE] STATISTICS; La clusula COMPUTE hace un clculo exacto de la estadsticas (tarda ms en realizarse en ANALYZE), la clusula ESTIMATE hace una estimacin partiendo del anterior valor calculado y de un posible factor de variacin y la clusula DELETE borra las anteriores estadsticas. ===== La sentencia COMMENT ===== El catlogo pblico contiene ciertas tablas encargadas de almacenar informacin adicional sobre tablas, vistas y columnas. La informacin que se suele almacenar es informacin de anlisis, valores posibles para las columnas y en general todo aquello que se haya concluido durante la etapa de anlisis. Las tablas existentes son: || Tabla || Descripcin || || ALL_TAB_COMMENTS || Contiene los comentarios para tablas y vistas. || || ALL_COL_COMMENTS || Contiene los comentarios para las columnas de tablas y vistas. ||

La informacin se debe almacenar en base de datos segn la siguiente sintaxis:

Pgina 80

Arquitectura de Base de Datos Oracle


COMMENT ON TABLE *tabla|vista+ IS texto; COMMENT ON COLUMN *tabla|vista+.columna IS texto;

Una vez que esta informacin est en base de datos, se puede escribir procedimientos o scripts SQL que muestren la informacin para sacar informes de documentacin de base de datos.

Listado alfabtico de las vistas del sistema de Oracle


Listado alfabtico de las tablas del sistema de Oracle que se utilizan normalmente.

ALL_ARGUMENTS ALL_CATALOG ALL_COL_COMMENTS ALL_CONSTRAINTS ALL_CONS_COLUMNS ALL_DB_LINKS ALL_ERRORS ALL_INDEXES ALL_IND_COLUMNS ALL_LOBS ALL_OBJECTS ALL_OBJECT_TABLES ALL_SEQUENCES ALL_SNAPSHOTS ALL_SOURCE ALL_SYNONYMS ALL_TABLES ALL_TAB_COLUMNS ALL_TAB_COL_STATISTICS ALL_TAB_COMMENTS ALL_TRIGGERS ALL_TRIGGER_COLS ALL_TYPES ALL_UPDATABLE_COLUMNS ALL_USERS ALL_VIEWS

DATABASE_COMPATIBLE_LEVEL DBA_DB_LINKS DBA_ERRORS DBA_OBJECTS DBA_ROLES DBA_ROLE_PRIVS DBA_SOURCE DBA_TABLESPACES DBA_TAB_PRIVS DBA_TRIGGERS DBA_TS_QUOTAS DBA_USERS DBA_VIEWS DICTIONARY DICT_COLUMNS GLOBAL_NAME NLS_DATABASE_PARAMETERS NLS_INSTANCE_PARAMETERS NLS NLS_SESSION_PARAMETERS NLS PRODUCT_COMPONENT_VERSION ROLE_TAB_PRIVS SESSION_PRIVS SESSION_ROLES SYSTEM_PRIVILEGE_MAP TABLE_PRIVILEGES TABLE_PRIVILEGE_MAP

Pgina 81

Arquitectura de Base de Datos Oracle

CONCLUSIONES

Oracle Database es un potente RDBMS que nos brinda un almacenamiento rpido y sobre todo seguro de nuestros datos. Oracle nos brinda un eficaz almacenamiento de nuestros datos brindndonos herramientas que nos permiten la recuperacin de estos en caso de cualquier tipo de fallo. Conocer tanto el funcionamiento como la arquitectura interna de cada uno de los elementos de un RDBMS es de vital importancia para poder realizar una correcta administracin de los datos almacenados. Los distintos procesos que realiza Oracle van enfocados a manejar eficazmente cada uno de las peticiones de los usuarios de la base de dato. El procesamiento de consultas es uno de los aspectos ms importantes a tener en cuenta ya que a travs de estos se asegura una respuesta rpida y eficiente de parte del RDBMS a las distintos consultas y procedimientos que un usuario ejecute

Pgina 82

Arquitectura de Base de Datos Oracle

RECOMENDACIONES

La investigacin sobre gestores de bases de datos debe realizarse tomando en consideracin las ltimas versiones que los fabricantes lanzan al mercado, as como las versiones que marcaron un cambio en la estructura y funcionamiento de los gestores de bases de datos. Consultar la documentacin del fabricante as como libros, manuales o sitios web de expertos en la administracin de bases de datos permite tener un mejor panorama sobre la amplitud de la aplicacin que tienen hoy en da los gestores.

Pgina 83

Arquitectura de Base de Datos Oracle

REFERENCIAS BIBLIOGRFICAS
Libros y Manuales: Oracle Database Concepts, 10g Release 2 (10.2) Michele Cyran Oracle Oracle Application Server 10g Administration Handbook John Garmany, Donald K. Burleson McGraw-Hill/Osborne Oracle Essentials Oracle Database 11g Rick Greenwald, Robert Stackowiak, Jonathan Stern OReilly Oracle Database 10g DBA Handbook Kevin Loney, Bob Bryla McGraw Hill Administracin de la Base de Datos Oracle9i Volumen I y II Marie St. Gelais Oracle Sitios Web: http://download.oracle.com/docs/cd/E11882_01/server.112/e25789/sqllangu.htm#au toId13 http://download.oracle.com/docs/cd/E11882_01/timesten.112/e17114/systemtables. htm http://www.oracle.com/pls/db112/homepage http://download.oracle.com/docs/cd/E11882_01/server.112/e25789/logical.htm#CNC PT250 http://xue.unalmed.edu.co/~mfcabrera/db/arqoracle.pdf http://www.lcc.uma.es/~bds/adminbd/apuntes/ABD4_Oracle.pdf http://www.wikilearning.com/curso_gratis/iniciacion_a_oracleconceptos_de_almacenamiento_en_oracle/3861-6 http://www.infor.uva.es/~jvegas/cursos/bd/orarq/orarq.html http://download.oracle.com/docs/cd/E11882_01/server.112/e25789/tablecls.htm#CN CPT010

Pgina 84

Arquitectura de Base de Datos Oracle

ANEXOS

Clasificacin de los Tipos de Datos

Pgina 85

Arquitectura de Base de Datos Oracle

Diagrama de la Arquitectura Oracle 11g

Pgina 86

Arquitectura de Base de Datos Oracle

Comparaciones entre Oracle y SQLServer


Address Space

Arquitectura Interna

Pgina 87

Arquitectura de Base de Datos Oracle

Database

Pgina 88

Arquitectura de Base de Datos Oracle

GLOSARIO
Va de acceso (access path): El medio por el cual se recuperan los datos de una base de datos. Por ejemplo, una consulta con un ndice y una consulta con una tabla puede usar caminos de acceso diferentes. Transaccin activa: Una transaccin que se ha iniciado pero an no confirma o se deshace. Modo ARCHIVELOG:Y modo de la base de datos que habilita el archivamiento del online redo log. rbol de Indice B: Los ndices estn organizados cono mu rbol cabeza abajo. Un rbol de ndice B tiene dos tipos de bloques: bloques de rama para buscar y bloques hoja para almacenar valores. Los bloques hojas contienen cada valor de los dato indexados y un towid correspondiente utilizado para localizar la fila actual. Indice de bitmap: Una ndice de base de datos en que la base de datos almacena un mapa de bits por cada llave ndice en vez de una lista de rowids. Encabezado del Bloque: Una parte del bloques de datos que incluye informacin sobre el tipo de bloque, las direcciones del bloque, y a veces informacin de la transaccin. Cabecera del Bloque: Espacio en un bloque de datos en el que se almacena toda la meta data necesaria para gestionar el bloque. La cabecera del bloque incluye el encabezado del bloque, el directorio de las tablas, y el directorio de las filas. Buffer: Una direccin de memoria principal en el cache del buffer de la base de datos. cache recovery: La fase de recuperacin de instancia donde la Base de Datos de Oracle aplica todos los cambios confirmados y no confirmados en los archivos redo log en lnea a los bloques de datos cambiados. columna: Espacio vertical en una tabla que representa un dominio de datos. Una definicin de tablas incluye un nombre de tabla y un conjunto de columnas. Cada columna tiene un nombre y tipo de datos. commit: Accin que finaliza una transaccin y hace los cambios permanentes realizados en la transaccin. concurrencia: Acceso simultaneo de los mismos datos por muchos usuarios. Una base de datos multiusuario debe proveer un control adecuado de la concurrencia para que los datos no puedan ser actualizados o cambiados de manera inapropiada, comprometiendo la integridad de los datos. Condicin: La combinacin de uno o ms expresiones y operadores lgicos en una sentencia SQL que retorne un valor de TRUE, FALSE or UNKNOW. control file: Un archivo binario que almacena la estructura fsica de una base de datos y contiene los nombres y ubicaciones de los archivos redo log, el tiempo de la creacin de la base de datos, la secuencia de log actual, informacin sobre los puntos de control, etc.

database: Coleccin organizada de datos tratados como una unidad. El propsito de la base de datos es almacenar y recuperar informacin relacionada.

Pgina 89

Arquitectura de Base de Datos Oracle


database buffer cache: La porcin de system global area (SGA) que contiene las copias de los bloques de datos. Todos los procesos de los clientes conectados concurrentemente a la instancia comparten el cache del buffer. data block: La unidad lgica ms pequea de almacenamiento de datos en Oracle Database. Un bloque de datos corresponde a un nmero especfico de bytes de espacio fsico en disco. Diccionario de datos: Una coleccin de tablas y vistas de base de datos de solo lectura que contienen informacin sobre la base de datos, su estructura, y sus usuarios. data dictionary view: Una vista predefinida de tablas u otras vistas en el diccionario de datos, estas vistas inician con el prefijo DBA_, ALL_, orUSER_. data file: Un archivo fsico en disco creado por la base de datos de Oracle que contiene los datos de una base de datos. El archivo de dato puede ser localizado o bien en un archivo del sistema operativo o en un grupo de discos de Oracle ASM. data segment: los segmentos contienen datos para tablas sin clster, particiones de tabla, o tablas clster. data type: En SQL, es un conjunto de propiedades asociadas a un valor o constante. DDL: Definicin de Lenguaje de Datos. Incluye sentencias tales como CREATE TABLE o ALTER INDEX que definen o cambia la estructura. DML: Data manipulation language. Incluye sentencias como SELECT, INSERT, UPDATE, y DELETE. plan de ejecucin: La combinacin de pasos usados por la base de datos para ejecutar sentencias SQL. Cada paso recoge los datos de datos fsicos de la base de datos o los prepara para los usuarios que emiten la sentencia. extent: mltiples bloque de datos contiguos localizados para almacenar un especfico tipo de informacin. Un segmento es hecho de una o ms extensiones. hashing: Una tcnica matemtica en que un infinito conjunto de valores de entrada son mapeados como un finito conjunto de valores de salida, llamados valores hash. Hashing es til para rpida bsquedas de datos en una tabla hash. heap-organized table: Una tabla en que las filas de datos estn almacenadas sin un orden especifico en el disco. Por defecto CREATE TABLE crea una tabla de montn. high water mark: La frontera entre el espacio utilizado y no utilizado en un segmento. hint: Una instruccin pasada al optimizador a travs de comentarios en una sentencia SQL. El optimizador utiliza consejos para elegir un plan de ejecucin de la sentencia. index: Esquema de objeto opcional asociado a una nonclustered table, table partition, o table clster. En algunos casos los ndices agilizan el acceso a los datos. instance: La combinacin de system global area (SGA) y background processes. Una instancia es asociada a una y solo una base de datos. key: Columna o conjunto de columnas asociados incluidas en la definicin de ciertos tipos de restricciones de integridad. large pool: Area opcional en el SGA que provee ubicaciones de memoria para backup y operaciones de restauracin LOB: Un dato de Oracle designado para mantener tamaos de datos grandes locally managed tablespace Un tablespace que utiliza un mapa de bits almacenados en cada fila de datos para gestionar la extensin. En contraste, un tablespace gestionado por

Pgina 90

Arquitectura de Base de Datos Oracle


diccionario utiliza el diccionario de datos para administrar el espacio.

null Ausencia de un valor en una columna e una fila. Nulls indica un dato perdido, desconocido o inaplicable online redo log: El conjunto de dos o ms archivos redo log que guardan todos los cambios hechos en los archivos de datos y archivos de control. Cuando un cambio es hecho en la base de datos, Oracle Database genera un registro redo. Optimizer: El software integrado de base de datos que determina la manera ms eficiente de ejecutar una sentencia SQL, teniendo en cuenta los factores relacionados con los objetos de referencia y las condiciones especificadas en la declaracin. Oracle architecture: Estructuras de memoria y procesos usados por la Base de Datos de Oracle para administrar la base de datos. Oracle ASM: Oracle Automatic Storage Management (Oracle ASM). Un gestor de volmenes y un sistema de archivos para archivos de base de datos. Oracle process: Un proceso que corre en cdigo de Oracle Database. PGA: Un bfer de memoria que contiene datos e informacin de control para un proceso de servidor. Query: Una operacin que recupera datos de tablas o vistas. Por ejemplo, SELECT * FROM empleados es una consulta. read consistency: Una visin coherente de los datos vistos por el usuario. Por ejemplo, en la declaracin de coherencia de lectura en el conjunto de los datos vistos por una sentencia SQL se mantiene constante a lo largo de la ejecucin de sentencias. read-only database: Una base de datos que est disponible para consultas y no se puede modificar. redo log: Un conjunto de archivos que protegen los datos alterados de base de datos en la memoria y que no han sido escritos en los archivos de datos. El registro de rehacer puede constar de dos partes: el registro de rehacer en lnea y el registro de rehacer archivados. redo log buffer: Estructura de memoria en el SGA que almacena entradas de rehacer. La base de datos escribe en entradas de rehacer almacenadas en el redo log buffers a un archivo online redo log file, que es usado si la recuperacin es necesaria. rol: Un conjunto de privilegios que son dados a los usuarios de la base de datos o a otros roles. row: Conjunto de columnas correspondientes a un solo registro en una tabla. La base de datos almacena las filas en bloques de datos. row chaining: Situacin en la que Oracle Database debe almacenar una serie de cadenas de bloques porque la fila es demasiado larga para caber dentro de un solo bloque. rowid: Una direccin globalmente nica que identifica a una fila en particular row migration: Situacin en la que Oracle Database mueve una fila de un bloque de datos hacia otro bloque de datos porque el crecimiento de la fila es demasiado grande para caber en el bloque original. Savepoint: Un SCN en una transaccin en el cual la transaccin puede ser retornada. schema: Un coleccin de objetos de base de datos, que incluye estructuras lgicas tales como tablas e ndices. Un esquema tiene el nombre del usuario de la base de datos que lo posee SCN: System Change Number. Un orden primitivo de la base de datos.

Pgina 91

Arquitectura de Base de Datos Oracle


segment: Conjunto de extensiones localizados en un base de datos especficos tales como tablas, ndices o tablas clster. sesin: Una entidad lgica en la instancia de la base de datos que representa el estado del usuario actual. SGA: System global area. Un grupo de memoria compartida que contiene datos e informacin de controles para una instancia de Oracle Database. Table: Unidad bsica de almacenamiento de datos en Oracle Database. Datos en las tablas estn almacenados en filas y columnas. table clster: Un esquema de objeto que contiene datos de una o ms tablas, los cuales tienen una o ms columnas en comn. table compresin: La compresin de segmentos de datos reducen el espacio de disco en una tabla de montn o particin de tabla. Tablespace: Unidad de almacenamiento lgicamente relacionada. Los archivos de datos estn almacenados en tablespaces. Archivos temporales: Un archivo que pertenece a un tablesapce temporal. temporary segment: Un segmento creado por Oracle Database cuando una sentencia SQL necesita una base de datos temporal para completar su ejecucin. temporary table: Una tabla que mantiene un conjunto de resultados intermedios de una transaccin o sesin. Transaction: Unidad lgica de trabajo que contiene una o ms sentencias SQL. Undo data: Registro de las acciones de las transacciones, antes de ser confirmadas. Undo tablespace: Un table space que contiene segmentos cuando automatic undo management mode se encuentre habilitado. View: Una presentacin personalizada a la medida de los datos en una o ms tablas.

Pgina 92

Vous aimerez peut-être aussi