Sunteți pe pagina 1din 21

AA9-Ev4-Técnicas para la

optimización de bases de datos

HAIVER NAYID CARDENAS RODRIGUEZ


Aprendiz
Técnicas de Optimización de Base de Datos
Uso del Asistente de Optimización
Asistente de para optimización de motor
de base de datos SQL Server 2012

El Asistente para la optimización de motor de base de datos de Microsoft


(DTA) analiza las bases de datos y hace recomendaciones que puede usar para
optimizar el rendimiento de las consultas. Puede usar el Asistente para la
optimización de motor de base de datos a fin de seleccionar y crear un
conjunto óptimo de índices, vistas indizadas o particiones de tabla sin
necesidad de conocer detalladamente la estructura de la base de datos ni el
funcionamiento interno de SQL Server. Con DTA, puede realizar las
siguientes tareas.

• Solucionar problemas del rendimiento de una consulta específica


• Optimizar un conjunto grande de consultas en una o varias bases de datos
• Realizar análisis condicionales de exploración de posibles cambios de
diseño físicos
• Administrar el espacio de almacenamiento
Asistente de para optimización de motor
de base de datos SQL Server 2012

En el sistema manejador de Base de


Datos SQL server 2012, ingresamos a
Management Studio. Seleccionamos la
pestaña de Herramientas y allí
Asistente para la optimización de
motor de base de datos, seguimos
los pasos del asistente para la
optimización.
Asistente de para optimización de motor
de base de datos SQL Server 2012

1
2

4
Codificación de las consultas SecSalud
Secretaria de Salud

Nos conectamos a la base de datos SecSalud y allí creamos el diagrama de base de


datos, seleccionamos todas las tablas y se oprime el botón agregar, el asistente
automáticamente organiza nuestro diagrama.
Secretaria de Salud
TipoIdentificacion
idT ipoIdentificacion

abreviatura

descripcion

Persona
idPersona

tipoidentificacion

nombre

apellido

fechaNacimiento

sexo

EPS
ideps

nombre

ServicioEps estadoeps

ideps

idtiposervicio HistorialPersona
idhistorialpersona
estado
idpersona
valor
EstadoPersona
fechaingreso
detalle idEstadoPersona
fecharetiro
descripcion
EstadoEPS estadopersona
idEstadoEPS
ideps
descripcion
tipoafiliado

TipoServicio
idTipoServicio

descripcion

TipoAfiliado
idTipoAfiliado

descripcion
Seleccionamos cada una de las
tablas y revisamos los índice de
cada una de ellas, por ahora el
único índice que aparece son las
llaves primarias estos índices se
crean automáticamente cuando
declaramos la llave primaria de las
tablas.
Se codifican las consultas para verificar el
rendimiento con el plan de ejecución

La consulta se realizara en la base


de datos de SecSalud
Query1.

SELECT * FROM PERSONA P


WHERE P.NOMBRE LIKE ‘C%’

Para verificar si por medio del


plan de ejecución se muestran
costos en los datos tanto en
recurso como en los tiempos de
ejecución, tomas estos datos para
proceder y agregar nuevos índices
a nuestra tabla
Query

Creamos una nueva consulta donde se emplean relaciones entre tablas, verificamos
el árbol de consulta y se ve que es extenso debido a las relaciones de las
distintas tablas
Verificamos el tiempo de consulta antes y después
de crear los índices
ANTES DESPUES

Al verificar los tiempos de consultas antes y después se evidencia que disminuyo


con relación a la consulta sin índices.
Se codifica
las consultas
para
verificar el
rendimiento
con el plan
de ejecución
Codificación de las consultas SecHacienda
Secretaria de Salud
detalleFacturaVigente tercero
iddetalle codTercero

codigoConceptoPago nombre
ConceptoPago cuentasPorCobrar
nroFactura FK__detalleFa__codig__29572725 apellidos
codigoConceptoPago nroCuenta
codigoConcepto estrato tipoidentifica
nombreConcepto codTercero
codigo
valorBaseGravable nroIdentifica
conceptoCuenta
nombre FK__cuentasPo__codTe__1BFD2C07
valorFactor email
valorCuenta
valorTotalConcepto dirección
estadoCuenta
FK__detalleFa__nroFa__2A4B4B5E
telefono

FK__predio__estrato___22AA2996 celular

fechaNacimiento

predio
facturaVigente ficha
FK__cuentasPo__codTe__1ED998B2
nroFactura estrato_codigo propietario

referencia cedula
FK__facturaVi__ficha__267ABA7A tipoUso_codigo FK__predio__propieta__239E4DCF

fichaPredio propietario_cedula
nombre cuentasPorPagar

fechaVencimiento apellido nroCuenta


direccion

fechaEmision codTercero
matricula

totalPagar conceptoCuenta
area

totalDescuento valorCuenta

estadoCuenta
FK__predio__tipoUso___21B6055D

FK__pago__nrofactura__2D27B809

tipoUso
pago codigo

idpago nombretipouso

nrofactura

fechaPago

valorPago

tipoPago
La consulta se realizara
en la base de datos de
SecHcienda.
Query

Para verificar si por


medio del plan de
ejecución se muestran
costos en los datos tanto
en recurso como en los
tiempos de ejecución,
tomas estos datos para
proceder y agregar
nuevos índices a nuestra
tabla
Verificamos el tiempo de consulta antes y después
de crear los índices

ANTES DESPUES

Al verificar los tiempos de


consultas antes y después se
evidencia que disminuyo con
relación a la consulta sin
índices.
Optimización de consultas
Optimización de consultas

Cambiar los OR por IN, cuando tenemos más de un valor para comparar.
Minimizar el coste de los JOIN: La concatenación natural o JOIN es la
operación más costosa de las bases de datos relaciones, ya que requiere
realizar una multiplicación cartesiana y una selección de valores. Algunas
técnicas que podemos usar para minimizar su efecto consisten en:
Reordenarlos para concatenar primero las relaciones con menos filas para
reducir el número de cruces.
Crear subconsultas en donde se filtren o limiten el número de filas de las
relaciones grandes antes de realizar los siguientes JOINs.
A veces, dividir una consulta en varias, es mejor que hacerlo todo con una
sola consulta, de forma que podemos obtener en una primera consulta unos
pocos identificadores que podemos pasar con un IN a la siguiente consulta,
en lugar de realizar un JOIN.
Optimización de consultas

Crear índices: los índices permiten un acceso a los datos no secuencial


mucho más rápido, pero son costosos de crear, así que no es conveniente su
uso si tenemos muchas más lecturas que escrituras. Debemos analizar el plan
de ejecución de las consultas (cada SGBD tiene su manera de verlo) para
saber dónde debemos crear índices.

Normalmente, crearemos los índices en claves ajenas y en las columnas que


se usen con ORDER BY o WHERE. Si se crean índices compuestos, se deben
poner las columnas en el mismo orden que se vayan a usar en las consultas

S-ar putea să vă placă și