Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AA9-Ev4 - Tecnicas para La Optimización de Bases de Datos-Elkin - Bedoya PDF
AA9-Ev4 - Tecnicas para La Optimización de Bases de Datos-Elkin - Bedoya PDF
TUTOR:
ING PAOLA ANDREA OCAMPO AYALA
Iniciemos con un ejemplo, supongamos que tenemos una consulta lenta (no
optimizada) que tarda 5 segundos más de lo debido y también supongamos que
nuestra aplicación maneja 20 mil usuarios. Si hacemos el cálculo esto implica que por
esos 5 segundos de más estaríamos perdiendo 27 horas de procesamiento, es decir, si
dibujamos una cola de usuarios, el último en la cola (en este caso la persona de color
rojo), potencialmente tiene que esperar 27 horas para ser atendido.
Ahora pensemos en sistemas complejos donde hay mucho más de 20 mil usuarios por
ejemplo los sistemas bancarios donde todos quieren acceder a su cuenta de la manera
más rápida posible y simultáneamente.
Por lo tanto, hoy en día está demostrado que una de la mejores maneras de traer
información dentro de los Sistemas Manejadores de Bases de Datos (SMBD), ya que
los índices están usando de manera interna es una estructura de datos complejas
como por ejemplo tablas hash, las cuales implementa un tipo de datos abstracto de
matriz asociativa, una estructura que puede asignar claves a valores. Una tabla hash
usa una función hash para calcular un índice, también llamado código hash, en una
matriz de cubos o ranuras, desde donde se puede encontrar el valor deseado. Durante
la búsqueda, la clave se codifica y el resumen resultante indica dónde se almacena el
valor correspondiente. A continuación revisaremos el estado de las tablas de la Base
de Datos de la Secretaria de Salud:
Con base en el análisis anterior, se procedió entonces a verificar que las tablas de la
Base de Datos de la Secretaria de Salud cuenten con índices, para estar confiados de
que las consultas serán optimizadas.
Como resultado se reconstruyeron para cada una de las tablas los siguientes índices:
Para realizar las consultas SQL, debemos preguntarnos ¿Cuál es la diferencia entre
una cláusula INNER JOIN y una cláusula WHERE?"
Bueno, la respuesta puede ser bastante larga, pero es posible responderla en pocas
palabras y de manera muy simple.
Si se está hablando del conjunto de resultados, no habrá mucha diferencia. Si se habla
de rendimiento, los SMBD son mucho más inteligentes puesto que reescribirán
automáticamente su búsqueda en la mayoría de los casos, por lo que no tendrá
diferencias en el rendimiento. Dicho esto, es preferible usar INNER JOIN cuando una
consulta involucra más de una tabla, ya que esa es la sintaxis válida de ANSI (Instituto
Nacional Estadounidense de Estándares)
1. Alcaldía de San Antonio del Sena, necesita un informe de todos los usuarios
registrados en la base de datos de la Secretaria de Salud, que tengan la letra “C” como
inicial de su primer nombre.
2. Se necesita un listado de todas las personas retiradas con los siguientes datos:
nombre, apellido, estado, eps, que servicios se le ha prestado a las personas retiradas
y cuanto cancelaron en total por los servicios prestados. Adicionalmente se necesita
que el informe salga en forma ordenada alfabéticamente por apellido.
SELECT p.idpersona, p.apellido, p.nombre, hp.ideps, e.nombre, sp.idservicio, sp.valor,
hp.estadopersona, ep.descripcion, hp.tipoafiliado, ta.descripcion
FROM persona p
INNER JOIN historialpersona hp
ON hp.idpersona=p.idpersona
INNER JOIN estadopersona ep
ON ep.estadopersona=hp.estadopersona
INNER JOIN Tipoafiliado ta
ON ta.idtipoafiliado=hp.tipoafiliado
INNER JOIN eps e
ON e.ideps=hp.ideps
INNER JOIN serviciopersona sp
ON sp.idpersona=p.idpersona
WHERE ep.estadopersona='R'
ORDER BY p.apellido;
4. Listar los propietarios por apellido sus predios y cuáles son las facturas que tiene
vigentes
6. La secretaria de hacienda quiere saber cuáles facturas esta pendientes por concepto
Declaración de Renta agrupándolos por el tipo de uso: “Comercial, Gobierno, Mixto,
Publico y Residencial”.
8. Saber las facturas vigentes de estratos 1.2.3 sobre el impuesto predial, se requiere la
siguiente información: filtrado por estrato, fecha de vencimiento, predio y nombre
completo del propietario
https://www.oratable.com/ora-01450-maximum-key-length-exceeded/
https://www.ibm.com/support/knowledgecenter/es/SSZLC2_8.0.0/com.ibm.commerce.d
eveloper.doc/refs/rsdperformanceworkspaces.htm
https://blog.toadworld.com/sql-optimizer-for-oracle-un-caso-real