El Proyecto

El Proyecto

A continuación se detalla el contenido que completara al Blog a partir de los posts que se publicaran periodicamente. Puede dirigirse directamente al contenido desarrollado hasta el momento haciendo click aqui

Introducción

Historia de SQL
Historia de Oracle
Oracle y la competencia
Oracle y Linux
Primero, conceptos robustos; luego, herramientas.

Arquitectura de una base de datos Oracle

La base y la instancia
Estructuras lógicas
            – Tablespaces
            – Bloques
            – Segmentos
                        – Segmentos de datos
                        – Segmentos de índices
                        – Segmentos temporales
                        – Segmentos de undo
            – Extents
Estructuras físicas
–         Archivos de datos
–         Archivos de redo log
–         Archivos de control

Estructuras de memoria
            – La SGA
            – La buffer cache
            – El redo log buffer
            – La Shared pool
            – La PGA
            – Para produndizar, otras estructuras de memoria

Los procesos background
            – El database writer
            – El log writer
            – El checkpoint
            – El SMON
            – El PMON
            – El archiver
            – Para profundizar, mas procesos background

Otros archivos
            – El archivo de parámetros
            – Archivos de trace
            – Archivos de log
            – Archivos de dumps
            – Archivos del motor

Variables de ambiente
            – ORACLE_HOME
            – ORACLE_SID
            – Para profundizar, otras variables de ambiente

Cómo se establece una conexión a una instancia Oracle
El diccionario de datos
            – Las vistas DBA_
            – Las vistas ALL_
            – Las vistas USER_
            – Las vistas V$
Esquemas
            – Qué es un esquema?
            – Tablas
            – Vistas
            – Secuencias
            – Sinónimos
            – Indices
            – Para profundizar, otros objetos.
El cliente Oracle
El archivo tnsnames.ora

El programa SqlPlus

Introducción a SqlPlus
Conectarse a una base
Desconectarse de una base
Ingresando sentencias SQL
Ingresando comandos de SqlPlus
El comando DESCRIBE
Editando el buffer SQL
Utilizando archivos con scripts
El comando SPOOL
Agregando comentarios
El comando SET
El comando SHOW
Para profundizar, mas sobre Sqlplus

Escribir sentencias SQL

Categorización de las sentencias SQL
            – DML’s
            – DDL’s
            – Control de transacciones
            – Control de sesiones
            – Control de sistema
Tipos de datos
            – Caracter
            – Numéricos
            – Long y Raw
            – Fecha y hora
            – Grandes objetos
            – Rowid
Operadores
            – Operadores unarios y binarios
            – Operadores de concatenación
            – Precedencia de operadores
Literales
Que es un query?
Escribiendo queries sencillos
Uso de alias
La cláusula DISTINCT
La tabla DUAL
Ordenamiento de filas
Agrupamiento de filas

Utilizar funciones

Introducción a las funciones
Funciones aplicadas a filas
            – NVL
            – NVL2
            – Funciones aplicadas a caracteres
                        – CONCAT
                        – INITCAP
                        – INSTR
                        – LENGTH
                        – LOWER
                        – LPAD
                        – LTRIM
                        – RPAD
                        – RTRIM
                        – REPLACE
                        – SUBSTR
                        – TRIM
                        – UPPER
            – Funciones aplicadas a números
                        – ABS
                        – MOD
                        – POWER
                        – ROUND
                        – TRUNC
            – Funciones aplicadas a fechas
                        – ADDMONTHS
                        – CURRENT_DATE
                        – CURRENT_TIMESTAMP
                        – LAST_DAY
                        – MONTHS_BETWEEN
                        – NEXT_DAY
                        – SYSTIMESTAMP
                        – SYSDATE
                        – TRUNC
            – Funciones de conversión
                        – TO_CHAR
                        – TO_DATE
                        – TO_NUMBER
            – Otras funciones
                        – DECODE
Aplicando funciones a grupos de filas.
Funciones aplicadas a grupos de filas
            – AVG
            – COUNT
            – MAX
            – MIN
            – SUM
Para profundizar, mas funciones.

Crear Tablas

Creación de tablas
Cómo especificar valores por defecto para las columnas
Cómo agregar comentarios
Cómo crear una tabla a partir de una tabla existente
Cómo modificar una tabla
            – Cómo agregar columnas
            – Cómo modificar columnas
            – Cómo eliminar columnas
Cómo eliminar una tabla
Cómo renombrar una tabla
Qué son las constraints y para qué sirven
Cómo crear constraints
Constraint NOT NULL
Check constraints
Constraints de unicidad
Claves primarias
Claves foráneas
Habilitación y Deshabilitación de constraints
Eliminación de constraints
Estados de una constraint
Dilatación del chequeo de constraints
Tablas temporarias
            – Qué son y para qué sirven
            – Creación de tablas temporarias
Truncar una tabla
            – Qué significa truncar una tabla
            – truncate o delete? Cuál uso?

Otros objetos

Vistas
            – Qué son y para qué sirven las vistas
            – Creación y administración de vistas
            – Creación de vistas con errores
Secuencias
            – Qué son y para qué sirven las secuencias
            – Creación y administración de secuencias
Sinónimos
            – Qué son y para qué sirven los sinónimos
            – Sinónimos públicos y privados
            – Creación y administración de sinónimos
Para profundizar, otros objetos.

Escribir sentencias SQL complejas

Sintaxis ANSI vs sintaxis Oracle
Join simple
Join complejo
Uso de alias
Producto cartesiano
Outer join
Self join
Utilización de operadores de conjuntos
            – INTERSECT
            – UNION
            – UNION ALL
            – MINUS
Subqueries
            – inline view
            – nested subquery
            – subquery escalar
            – subqueries multi columna

Procesamiento de código SQL

Qué es un cursor y para qué sirve
Areas de SQL compartido
Etapas en el procesamiento de una sentencia SQL
            – Parseo
            – Binding
            – Ejecución
            – Fetch
Beneficios de compartir cursores
Cómo escribir código para compartir cursores
Variables de binding (bind variables)
Como monitorear la utilización de cursores
El parametro CURSOR_SHARING

El plan de ejecución

Qué es el plan de ejecución?
El comando EXPLAIN PLAN
Creación de la PLAN_TABLE
Cómo ver el plan de ejecución
Cómo leer el plan de ejecución
Uso de AUTOTRACE

Trace de sentencias SQL y el utilitario TKPROF
Introducción a SQL Trace
Cómo utilizar SQL Trace
Parámetros de inicialización de SQL Trace
Activación de SQL Trace
Obtención del archivo de resultados
Formateo del archivo de trace
El comando TKPROF
Interpretación de la salida del TKPROF
Errores comunes en la interpretación
Para profundizar, trace de aplicaciones “end to end” y trcsess

El optimizador
Qué es el optimizador?
Qué hace el optimizador?
Configuración del optimizador
            – El parámetro de inicializacion OPTIMIZER_MODE
            – Hints
            – Estadísticas en el diccionario de datos
Componentes del optimizador
            – El query transformer
            – El Estimator
            – El Plan Generator

Indices y métodos de acceso

Que es el ROWID?
Indices únicos y no únicos
Indices compuestos
Técnicas de almacenamiento de índices
            – Indices B-tree
                        – Indices reversos
                        – Indices descendentes
                        – Indices basados en funciones
            – Indices Bitmap
            – Indices de dominio
            – Tablas organizadas por índice
Estadísticas de índices
Efectos de las operaciones sobre los índices
Indices y constraints
Indices y claves foráneas
Qué es un método de acceso
Cómo determina el optimizador el método de acceso
Métodos de acceso básicos
            – Full scan
            – Rowid scan
            – Index scan
            – Fast full index scan

Influir sobre el optimizador

Configuración del optimizador
Qué es un hint?
Cómo se utilizan los hints?
Algunas reglas para el uso de hints
Recomendaciones para la utilización de hints
Categorización de hints
            – Para elegir el modo de optimización
            – Para elegir el método de acceso
            – Para elegir la forma de hacer un join
            – Para paralelizar ejecuciones
Algunos hints básicos
            – FULL
            – ROWID
            – USE_NL
            – INDEX
            – INDEX_ASC
            – INDEX_DESC
            – INDEX_FFS
            – NO_INDEX
            – PARALLEL
            – PARALLEL_INDEX
            – ORDERED
Para profundizar, mas hints

Optimización de sorts y joins.

Optimización de las operaciones de ordenamiento
Top-N SQL
Cómo resuelve los joins el optimizador
            – Cómo ejecuta una sentencia de join
            – Cómo elige el plan de ejecución de un join
Terminología de joins
Formas de implementación de un join
            – Nested loop join
            – Merge join
            – Hash join
            – Cartesian join
            – Outer join
Parámetros de inicialización que influencian a los joins
Algunos consejos
            – Minimizar el “throaway”de filas
            – Minimizar el procesamiento

Apendice

Estructura de un indice bitmap

Anuncios

TrackBack Identifier URI