17 jul 2012

OPTIMIZACIÓN BASADA EN EL COSTO


El optimizador basado en costes, se basa en calcular el coste de distintos planes de ejecución y elegir para la ejecución el plan de ejecución con menor coste. En su contra, está el optimizador basado en reglas, que se basa en una reglas prefijadas para decidir el plan de ejecución de una consulta.


Para calcular el coste de una consulta, el optimizador se basa en las estadísticas almacenadas en el catálogo de Oracle, a través de la instrucción:
ANALYZE [TABLE,INDEX] <object_name> [COMPUTE, ESTIMATE] STATISTICS;
Si no existen datos estadísticos para un objeto (por ejemplo, porque se acaba de crear), se utilizarán valores por defecto. Además, si los datos estadísticos está anticuados, se corre el riesgo de calcular costes basados en estadísticas incorrectas, pudiendo ejecutarse planes de ejecución que a priori pueden parecer mejores.
Por esto, si se utiliza el optimizador basado en costes, es muy importante analizar los objetos periodicamente (como parte del mantenimiento de la base de datos). Como las estadísticas van evolucionando en el tiempo, el plan de ejecución se va modificando para optimizarlo mejor a la situación actual de la base de datos.
Dentro de la optimización por costes, existen dos modos de optimización, configurables desde el parámetro OPTIMIZER_MODE:
- FIRST_ROWS: utiliza sólo un número determinado de filas para calcular los planes de ejecución. Este método es más rápido pero puede dar resultados imprecisos.
- ALL_ROWS: utiliza todas las filas de la tabla a la hora de calcular los posibles planes de ejecución. Este método es más lento, pero asegura un plan de ejecución muy preciso. Si no se indica lo contrario, este es el método por defecto.
OPERACIONES RELACIONALES
Selección: La selección de tuplas de una relación R es otra relación con la misma cabecera que R y cuyo cuerpo está formado por las tuplas de R que verifican una condición entre atributos. En la condición pueden aparecer operadores de comparación (=, <>, >=, etc.) y booleanos (and, or, not).
Ordenación: esta juega un papel muy importante en los sistemas de bases de datos por dos razones:
      Las consultas por ejemplo SQL pueden solicitar que los datos sean ordenados, varias de las operaciones relacionales como las reuniones, se pueden implementar eficientemente si las relaciones de entrada están ordenadas.
       Se puede conseguir una ordenación lógica construyendo un índice para la clave de ordenación y utilizar luego ese índice para leer la relación.
 Reunión: La reunión de dos relaciones específicas es otra relación que contiene todas las posibles combinaciones de tuplas, una de cada una de las dos relaciones, tales que las dos tuplas participantes de la combinación satisfacen una condición especificada.
Proyección: La proyección de la Relación R según los atributos A1, A2, ... , An es otra relación que tiene por cabecera los atributos indicados y en cuyo cuerpo aparecen todas las tuplas de R restringidas a dichos atributos, eliminando tuplas repetidas.
EVALUACIÓN DE EXPRESIONES
La forma evidente de evaluar una expresión es simplemente evaluar una operación a la vez en un orden apropiado. El resultado de cada evaluación se materializa en una relación temporal preparada para su inmediata utilización
Las expresiones se pueden evaluar por medio de dos métodos:
      Materialización: En el cual los resultados parciales se escriben en una tabla temporal, implicando aumentar la escritura de los bloques a disco en el cálculo de eficiencia.
   Encauzamiento: Los resultados generados van alimentando la operación siguiente. Se puede presentar el esquema bajo demanda en el cual las operaciones superiores hacen peticiones de tuplas a las inferiores
RESPALDO
Database Backup:
Hay ocaciones donde es necesario tener el “codigo” de nuestra base de datos, ya sea para hacer un respaldo , para migrar la BD a otro servidor o simplemente por que se nos da la gana.
Para esto MySQL cuenta con un comando muy bueno, el cual nos entrega un archivo con todas las tablas, relaciones y registros que se encuentran en la BD.
mysqldump -u usuario -p nombreDB > Archivo_de_salida.sql
Donde usuario hay que reemplazarlo con nuestro nombre de usuario.
Lo unico que hay que considerar es que en el script no se encuentra la creacion de la BD, asi que antes de ingresar este archivo pa crear la BD es necesario agregar las siguientes lineas al inicio del archivo:
CREATE nombre_base_de_datos;
USE nombre_base_de_datos;

Tablespace Backup
Una base de datos está formada por una o varias unidades lógicas llamadas  tablespaces.  Además, cada una de estos tablespaces está formado por uno o varios ficheros físicos que son los datafiles. Un datafile solamente puede pertenecer a un tablespace. Por lo tanto, los datafiles de una base de datos son todos los datafiles que forman parte de todos los tablespaces de la base. 
Cuando se crea una base de datos, hay que crear al menos un tablespace, por lo que durante el proceso de creación de la base de datos siempre se indica el tablespace principal de ésta, que se llama SYSTEM. De igual manera, cuando se crea un tablespace que, como hemos dicho, es una unidad lógica, se debe indicar obligatoriamente también el nombre de al menos un datafile que formará parte de ese tablespace. 

Autores:
Rodriguez Jonhathan
Hernandez Nayarith
Lugo Jose G.
Pignone Gerardo
Martinez Mildred
Peña Magdalyth

No hay comentarios: