Está en la página 1de 34

AA9-Ev4-Técnicas para la optimización de bases de datos

Alcaldía de San Antonio del


SENA

Edisson Galíndez Bermúdez


Miguel Ángel Ramírez Severiche
Nohora Esther Malagón Sáenz

Servicio Nacional de Aprendizaje - SENA


Centro de Servicios y Gestión Empresarial
2019
AA9-Ev4-Técnicas para la optimización de bases de datos
Alcaldía de San Antonio del
SENA

Edisson Galíndez Bermúdez


Miguel Ángel Ramírez Severiche
Nohora Esther Malagón Sáenz

Presentado a:
Ing. Diana María de Jesús Rico Mesa

Servicio Nacional de Aprendizaje - SENA


Centro de Servicios y Gestión Empresarial
2019
CONTENIDO

1. Introducción
2. Objetivos.
3. Técnicas para la optimización de base de datos
3.1 Herramientas De Supervisión Y Optimización Del Rendimiento
3.2 Establecer Una Línea Base Del Rendimiento
3.3 Aislar Problemas De Rendimiento
3.4 Herramientas Para Solucionar Problemas Comunes De Rendimiento
3.5 Identificar Los Cuellos De Botella
3.6 Analizar Cuellos De Botella
4. laboratorio
5. Referencias Bibliográficas
INTRODUCCION

Cuando hablamos de optimización de consultas nos referimos a mejorar


los tiempos de respuesta en un sistema de gestión de bases de datos
relacional, pues la optimización es el proceso de modificar un sistema para
mejorar su eficiencia o también el uso de los recursos disponibles

En bases de datos relacionales el lenguaje de consultas SQL es el más


utilizado por el común de los programadores y desarrolladores para
obtener información desde la base de datos. La complejidad que pueden
alcanzar algunas consultas puede ser tal, que el diseño de una consulta
puede tomar un tiempo considerable, obteniendo no siempre una
respuesta óptima.

OBJETIVOS

Aplicar técnicas para optimizar la estructura de la base de datos y las


consultas, a partir del uso de herramientas de monitoreo para mejorar el
rendimiento y garantizar consistencia e integridad en los datos

TÉCNICAS PARA LA OPTIMIZACIÓN DE BASES DE DATOS

La técnica para la optimización de las bases de datos está dada bajo varios
parámetros, primeramente, hay que realizar una supervisión con el fin de
evaluar el rendimiento de un servidor con el fin de detectar y aislar los
procesos que causan problemas y por ende realizar el respectivo
seguimiento de las tendencias de rendimiento.

Hay que tener en cuenta que la evaluación continua del rendimiento de la


base de datos ayuda a minimizar los tiempos de respuesta y a maximizar el
rendimiento, obteniendo como resultado un rendimiento óptimo. Es
necesario analizar a fondo los requisitos de las aplicaciones, comprender la
estructura lógica y física de los datos y evaluar el uso de la base de datos
para la toma de decisiones en las organizaciones.
El SGBD SQL Server y SO Microsoft Windows, nos facilitan herramientas que
supervisan y nos muestran las condiciones actuales de la base de datos y
realizan un seguimiento de ese rendimiento a medida que este cambia. Hay
que conocer el modo de supervisar SQL Server, ya que de esta forma nos
puede ayudar en varios aspectos como son: Determinar si el rendimiento se
puede mejorar; evaluar la actividad de los usuarios y solucionar problemas
o depurar componentes de aplicaciones, como procedimientos almacenados.

Existen muchas tareas de supervisión y optimización del rendimiento, entre


ellas podemos detallar las siguientes:

Descripción de la tarea Tema


Proporciona los pasos necesarios Supervisar los componentes de SQL
para supervisar eficazmente Server
cualquier componente de SQL
Server.
Enumera las herramientas de Herramientas de supervisión y
supervisión y optimización de SQL optimización del rendimiento
Server.
Proporciona información acerca de Establecer una línea base del
cómo establecer una línea base de rendimiento
rendimiento.
Describe cómo aislar problemas de Aislar problemas de rendimiento
rendimiento de base de datos.
Describe cómo supervisar y seguir Identificar los cuellos de botella
el rendimiento del servidor para
identificar cuellos de botella.
Describe cómo usar SQL Server y Supervisión de la actividad y
las herramientas de supervisión de rendimiento del servidor
rendimiento y actividad de
Windows.
Describe cómo mostrar y guardar Mostrar y guardar planes de
planes de ejecución en un archivo ejecución
de formato XML.

De acuerdo a todo lo planteado anteriormente, es claro que la supervisión


es importante, ya que SQL Server ofrece un servicio en un entorno
dinámico.
Los datos de la aplicación cambian. El tipo de acceso que requieren los
usuarios cambia. La forma de conexión de los usuarios cambia. También
pueden cambiar los tipos de aplicaciones que tienen acceso a SQL Server,
pero SQL Server administra automáticamente los recursos del sistema,
como la memoria y el espacio en disco, para minimizar la necesidad de
optimizar manualmente el sistema.
La supervisión permite a los administradores identificar las tendencias de
funcionamiento para determinar si es necesario realizar cambios. Por todo
esto, para supervisar cualquier componente de SQL Server en forma eficaz
es necesario realizar los siguientes pasos:

1) Definir los objetivos de supervisión


2) Seleccionar las herramientas apropiadas
3) Identificar los componentes que se desean supervisar
4) Seleccionar métricas para dichos componentes
5) Supervisar el servidor y por último, Analizar los datos.

HERRAMIENTAS DE SUPERVISIÓN Y OPTIMIZACIÓN DEL


RENDIMIENTO

SQL Server proporciona un conjunto de herramientas para supervisar los


eventos de este SGBD y para optimizar el diseño de la base de datos física.
La elección de la herramienta depende del tipo de supervisión u optimización
que se realice y de los eventos particulares que se supervisen. A
continuación, se describen las herramientas de supervisión y optimización
de SQL Server:

Herramienta Descripción
El SQL Server Profiler realiza un
seguimiento de los eventos de
procesos del motor, como el inicio
de un lote o una transacción, que
permite supervisar la actividad del
servidor y de la base de datos (por
ejemplo, interbloqueos, errores
sp_trace_setfilter (Transact-SQL) irrecuperables o actividad de inicio
de sesión). Puede capturar datos de
SQL Server Profiler en un archivo o
una tabla de SQL Server para su
análisis posterior y también puede
reproducir paso a paso los eventos
capturados en SQL Server para ver
qué sucedió exactamente.
Distributed Replay de Microsoft SQL
SQL Server Distributed Replay Server puede usar varios equipos
para reproducir los datos de
seguimiento, simulando una carga
de trabajo crítica.
La función principal del Monitor de
sistema es hacer un seguimiento del
uso de los recursos, como el número
Supervisar el uso de recursos de solicitudes de página del
(Monitor de sistema) administrador de búfer activas, que
permite supervisar el rendimiento y
la actividad del servidor mediante el
uso de objetos y contadores
predefinidos o contadores definidos
por el usuario para supervisar
eventos. El Monitor de sistema
(Monitor de rendimiento en
Microsoft Windows NT 4.0) recopila
contadores y porcentajes en lugar
de datos acerca de los eventos (por
ejemplo, uso de la memoria,
número de transacciones activas,
número de bloqueos bloqueados o
actividad de la CPU). Puede
establecer umbrales en contadores
específicos para generar alertas que
Supervisar el uso de recursos notifiquen a los operadores.
(Monitor de sistema) El Monitor de sistema funciona en
los sistemas operativos Microsoft
Windows Server y Windows. Puede
supervisar (remota o localmente)
una instancia de SQL Server en
Windows NT 4.0 o posterior.
La diferencia clave entre el SQL
Server Profiler y el Monitor de
sistema es que el SQL Server
Profiler supervisa los eventos del
motor de base de datos, mientras
que el Monitor de sistema supervisa
el uso de los recursos asociado con
los procesos del servidor.

El Monitor de actividad de SQL


Server Management Studio muestra
información gráfica acerca de:
 Los procesos que se ejecutan
en una instancia de SQL
Abrir el Monitor de actividad (SQL Server.
Server Management Studio)  Los procesos bloqueados.
 Bloqueos.
 La actividad de los usuarios.
Esto resulta útil para vistas ad hoc
de la actividad actual.
Procedimientos almacenados de
Transact-SQL que crean, filtran y
SQL, seguimiento definen trazas:
 sp_trace_create (Transact-
SQL)
 sp_trace_generateevent
(Transact-SQL)
 sp_trace_setevent (Transact-
SQL)
 sp_trace_setfilter (Transact-
SQL)
 sp_trace_setstatus
(Transact-SQL)
El registro de eventos de aplicación
de Windows proporciona una
imagen global de los eventos que
ocurren en todos los sistemas
operativos Windows Server y
Windows, así como de los eventos
de SQL Server, el Agente SQL
Registros de errores Server y la búsqueda de texto
completo. Contiene información
acerca de los eventos de SQL Server
que no está disponible en ningún
otro lugar. Puede utilizar la
información del registro de errores
para solucionar problemas
relacionados con SQL Server.
Los siguientes procedimientos
almacenados del sistema de SQL
Server suponen una alternativa muy
eficaz para realizar muchas tareas
Procedimientos almacenados del de supervisión:
sistema (Transact-SQL) Procedimiento
almacenado Descripción
sp_who Notifica
(Transact-SQL) información de
instantáneas
acerca de los
usuarios y
procesos
actuales de SQL
Server, incluida
la información
sobre la
instrucción que
se ejecuta
actualmente y
si la instrucción
está bloqueada.
Proporciona
información de
sp_lock instantánea
(Transact-SQL) acerca de
bloqueos,
incluidos los
identificadores
de objeto y de
índice, el tipo de
bloqueo y el
tipo o recurso al
que se aplica el
bloqueo.
Muestra una
sp_spaceused estimación de la
(Transact-SQL) cantidad actual
de espacio en
disco que utiliza
una tabla (o
toda la base de
datos).
Muestra
estadísticas que
sp_monitor incluyen el uso
(Transact-SQL) de la CPU, el
uso de E/S y el
tiempo de
inactividad
desde la última
vez que se
ejecutó
sp_monitor.
Las instrucciones DBCC (Comandos
de consola de base de datos)
DBCC (Transact-SQL) permiten comprobar las estadísticas
de rendimiento y la coherencia
lógica y física de una base de datos.
Las funciones integradas muestran
Funciones integradas (Transact- estadísticas de instantáneas acerca
SQL) de la actividad de SQL Server desde
el inicio del servidor; estas
estadísticas se almacenan en
contadores de SQL Server
predefinidos. Por ejemplo,
@@CPU_BUSY contiene el tiempo
que la CPU ha estado ejecutando
código de SQL Server,
@@CONNECTIONS contiene el
número de conexiones o intentos de
conexiones de SQL Server y
@@PACKET_ERRORS contiene el
número de paquetes de red
generados en conexiones de SQL
Server.
Las marcas de seguimiento
Marcas de seguimiento (Transact- muestran información acerca de una
SQL) actividad específica en el servidor
para diagnosticar problemas o
causas de bajo rendimiento (por
ejemplo, cadenas de
interbloqueos).
El Asistente para la optimización de
motor de base de datos analiza los
Asistente para la optimización de efectos en el rendimiento de las
motor de base de datos instrucciones Transact-SQL
ejecutadas en las bases de datos
que desea optimizar. El Asistente
para la optimización de motor de
base de datos proporciona
recomendaciones para agregar,
quitar o modificar índices, vistas
indizadas y particiones.

A continuación, se realizará en forma detallada como se hace la elección de


la herramienta de supervisión, ya que esto depende del evento o de la
actividad que se va a supervisar.

Evento o SQL Distributed Monitor Monitor Transact- Registros


actividad Server Replay de de SQL de
Profiler sistema actividad errores
Análisis de si si
tendencias
Reproducción Sí (desde Sí (desde
de los eventos un varios
capturados equipo equipos)
único)
Supervisión si si si si
ad hoc
Generación de si
alertas
Interfaz si si si si
gráfica
Uso en si si
aplicaciones
personalizadas

ESTABLECER UNA LÍNEA BASE DEL RENDIMIENTO

Para determinar si el sistema SQL Server funciona de forma óptima, tome


medidas del rendimiento a intervalos regulares, incluso cuando no existan
problemas, para establecer una línea base del rendimiento del servidor.
Compare cada conjunto de medidas nuevo con las medidas tomadas
anteriormente. Las áreas siguientes afectan al rendimiento de SQL Server:

 Recursos del sistema (hardware)


 Arquitectura de red
 Sistema operativo
 Aplicaciones de bases de datos
 Aplicaciones cliente
 Como mínimo, utilice las medidas de línea base para determinar:
 Las horas con el máximo y el mínimo nivel de funcionamiento.
 Tiempos de respuesta de comandos de procesamiento por lotes o
consultas de producción.
 Tiempos de finalización de operaciones de copias de seguridad y
restauración de bases de datos

Cuando haya establecido la línea base para el rendimiento del servidor,


compare las estadísticas de la línea base con el rendimiento actual del
servidor. Unas cifras demasiado elevadas o demasiado reducidas con
respecto a la línea base indican que hay que realizar una investigación más
detallada. Pueden indicar áreas que hay que optimizar o volver a configurar.
Por ejemplo, si aumenta el tiempo necesario para ejecutar un conjunto de
consultas, examine las consultas para determinar si puede volver a
escribirlas o si es necesario agregar estadísticas de columnas u otros índices.

AISLAR PROBLEMAS DE RENDIMIENTO

A menudo suele ser más efectivo utilizar conjuntamente varias herramientas


de Microsoft SQL Server o Microsoft Windows para aislar los problemas de
rendimiento de una base de datos que usar solo una herramienta cada vez.
Por ejemplo, la característica Plan de ejecución gráfico, denominada
también plan de presentación, le ayuda a reconocer los interbloqueos en
una sola consulta. Sin embargo, puede reconocer más fácilmente otros
problemas de rendimiento si utiliza conjuntamente las características de
supervisión de SQL Server y Windows.

El SQL Server Profiler puede utilizarse para supervisar y solucionar


problemas de Transact-SQL o problemas relacionados con las aplicaciones.
Asimismo, puede utilizar el Monitor de sistema para supervisar problemas
relativos al hardware y otros problemas relacionados con el sistema. Puede
supervisar las siguientes áreas para solucionar problemas:

 Procedimientos almacenados de SQL Server o lotes de instrucciones


Transact-SQL enviadas por aplicaciones de usuarios.
 Actividad de los usuarios, como bloqueos o interbloqueos.
 Actividad del hardware, como el uso de los discos.
 Algunos problemas posibles son:
 Errores de programación de aplicaciones debidos a instrucciones
Transact-SQL escritas incorrectamente.
 Errores de hardware, como los relativos a discos o a la red.
 Bloqueo excesivo debido a un diseño incorrecto de la base de datos.

HERRAMIENTAS PARA SOLUCIONAR PROBLEMAS COMUNES DE


RENDIMIENTO

Igual de importante es la correcta selección del problema de rendimiento


que desea que cada herramienta supervise u optimice. La herramienta y la
utilidad dependen del tipo de problema de rendimiento que desee resolver.

En los temas siguientes se describen diversas herramientas de supervisión


y optimización y los problemas que ayudan a solucionar.

Identificar los cuellos de botella

El acceso simultáneo a recursos compartidos causa cuellos de botella. En


general, los cuellos de botella están presentes en todos los sistemas de
software y son inevitables. Sin embargo, la demanda excesiva de recursos
compartidos causa un tiempo de respuesta largo, y debe identificarse y
corregirse. Entre las causas de estos cuellos de botella se incluyen:

 Recursos insuficientes que requieren componentes adicionales o


actualizados.
 Recursos del mismo tipo que no distribuyen de forma equilibrada las
cargas de trabajo; por ejemplo, cuando un recurso monopoliza un
disco.
 Recursos que funcionan incorrectamente.
 Recursos mal configurados.

Analizar cuellos de botella

La duración excesiva de varios eventos es un indicador de cuello de botella


que puede corregirse. Por ejemplo:
 Otros componentes pueden evitar que la carga alcance este
componente, lo que aumenta el tiempo que se tarda en completar la
carga.
 Las solicitudes de cliente pueden tardar más tiempo debido a una
congestión de la red.

A continuación, se indican cinco áreas clave que hay que supervisar para
realizar un seguimiento del rendimiento del servidor e identificar cuellos de
botella.
Posible área del cuello de Efectos en el servidor
botella
Si no se asignó o no hay disponible
suficiente memoria para Microsoft
Uso de la memoria SQL Server, el rendimiento
disminuirá. Los datos se deben leer
en el disco, y no directamente en la
caché de datos. Los sistemas
operativos Microsoft Windows
realizan una paginación excesiva
intercambiando datos con el disco
cuando son necesarias las páginas.
Un uso excesivo continuo de la CPU
Uso de la CPU puede indicar que las consultas de
Transact-SQL deben optimizarse o
que es necesaria una actualización
de la CPU.
Las consultas de Transact-SQL se
Entrada/salida (E/S) de disco pueden optimizar para reducir la
E/S innecesaria; por ejemplo,
mediante el uso de índices.
Puede haber demasiados usuarios
Conexiones de usuario obteniendo acceso al servidor de
forma simultánea, lo que disminuye
el rendimiento.
Las aplicaciones diseñadas
incorrectamente pueden causar
Bloqueos de cierre simultaneidad de obstáculos y
bloqueos, lo que genera tiempos de
respuesta más largos y un menor
rendimiento de las transacciones.
LABORATORIO

Importamos el laboratorio
No tenemos creado índices en nuestra tabla

Utilizaremos la herramienta SQL SERVER PROFILIER


Muestra las consultas con su respectivo tiempo
Detenemos la trazabilidad y guardamos el archivo

Guardamos le archivo
Abrimos el asistente de optimización de motor de base de datos
Nos conectamos

Abrimos le archivo
Y seleccionamos la base de datos
Y le damos en iniciar análisis
Me salió un error

Voy a opciones de optimización y después a opciones avanzadas


Se vuelve a correr el análisis
Mostrando el plan de ejecución
REFERENCIAS BIBLIOGRAFICAS

 https://www.youtube.com/watch?v=rNhEFm88Rjg
 https://www.youtube.com/watch?v=1HH4ZYXhJYE
 https://www.ibm.com/support/knowledgecenter/es/SSZLC2_7.0.0/c
om.ib.commerce.developer.soa.doc/refs/rsdperformanceworkspaces.
htm
 https://www.miguelra.com/como-optimizar-la-velocidad-de-la-base-
de-datos/
 https://docs.microsoft.com/es-es/sql/relational-
databases/performance/start-and-use-the-database-engine-tuning-
advisor?view=sql-server-2017
 https://www.arsys.es/blog/programacion/optimizar-base-de-datos/
 https://es.wikipedia.org/wiki/Optimizaci%C3%B3n_de_consultas

 https://es.wikibooks.org/wiki/MySQL/Optimizaci%C3%B3n/Optimiza
ci%C3%B3n_de_la_BD

También podría gustarte