Está en la página 1de 12

AA9-EV4-TÉCNICAS PARA LA OPTIMIZACIÓN DE BASES DE DATOS

1881802
NARCISO MANUEL MEJIA REYES

SENA
GESTION Y SEGURIDAD DE BASES DE DATOS
2019
TÉCNICAS PARA LA OPTIMIZACIÓN DE UNA BASE DE DATOS

Las técnicas para la optimización de las bases de datos están dadas bajo varios parámetros,
primero hay que realizar una supervisión con el fin de evaluar el rendimiento de un servidor
para detectar y aislar los procesos que causan problemas y por ende realizar el respectivo
seguimiento de las tendencias de rendimiento.
Hay que tener presente que la evaluación continua del rendimiento de la base de datos
ayuda a minimizar los tiempos de respuesta y a maximizar el rendimiento para que este sea
ó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, depurar componentes de aplicaciones como procedimientos almacenados, entre
otros.
Existen muchas tareas de supervisión y optimización del rendimiento, entre ellas podemos
detallar las siguientes:

TAREA DESCRIPCIÓN DE LA TAREA


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

HERRAMIENTAS DE SUPERVISIÓN Y OPTIMIZACIÓN DEL RENDIMIENTO

• sp_trace_setfilter (Transact-SQL): 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 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.
• SQL Server Distributed Replay: Distributed Replay de Microsoft SQL Server
puede usar varios equipos para reproducir los datos de seguimiento, simulando una
carga de trabajo crítica.
• Supervisar el uso de recursos (Monitor de sistema) : La función principal del
Monitor de sistema es hacer un seguimiento del uso de los recursos,
como el número de solicitudes de página del 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 notifiquen a los operadores.
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.
• Abrir el Monitor de actividad (SQL Server Management Studio): 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 Server.
- Los procesos bloqueados.
- Bloqueos.
- La actividad de los usuarios.
Esto resulta útil para vistas ad hoc de la actividad actual.
• SQL seguimiento: Procedimientos almacenados de Transact-SQL que crean, filtran
y 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)

• Registro de errores: 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
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.
• Procedimientos almacenados del sistema Transact-SQL: Los siguientes
procedimientos almacenados del sistema de SQL Server suponen una alternativa
muy eficaz para realizar muchas tareas de supervisión:

PROCEDIMIENTO DESCRIPCIÓN
sp_who (Transac-SQL) Notifica información instantánea a
cerca de los usuarios y procesos
actuales de SQL Server, incluida la
información sobre la instrucción que se
ajecuta o si esta esta bloqueada
sp_lock (Transac-SQL) Proporciona información de instantánea
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.

sp_spaceused (Transact-SQL) Muestra una estimación de la cantidad


actual de espacio en disco que utiliza
una tabla (o toda la base de datos).

sp_monitor (Transact-SQL) Muestra estadísticas que incluyen el uso


de la CPU, el uso de E/S y el tiempo de
inactividad desde la última vez que se
ejecutó
sp_monitor.
DBCC (Transact-SQL) Las instrucciones DBCC (Comandos
de consola de base de datos) permiten
comprobar las estadísticas de
rendimiento y la coherencia lógica y
física de una base de datos.

Funciones integradas (Transact- Las funciones integradas muestran


SQL) estadísticas de instantáneas acerca 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.
Marcas de seguimiento (Transact- Las marcas de seguimiento muestran
SQL) información acerca de una actividad
específica en el servidor para
diagnosticar problemas o causas de
bajo rendimiento (por ejemplo,
cadenas
de interbloqueos).
Asistente para la optimización de El Asistente para la optimización de
motor de base de datos motor de base de datos analiza los
efectos en el rendimiento de las
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.

ESTABLECER UNA LÍNEA BASE DEL RENDIMIENTO

Para determinar si el sistema SQL Server funciona de forma óptima, se deben tomar medidas
del rendimiento a intervalos regulares, incluso cuando no existan problemas, para
establecer una línea base del rendimiento del servidor, comparar 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 se haya establecido la línea base para el rendimiento del servidor, se compara 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.
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 se requiera resolver.
A continuación, 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 los 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
Uso de la memoria Si no se asignó o no hay disponible suficiente memoria
para Microsoft 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.
Uso de la CPU Un uso excesivo continuo de la CPU puede indicar que
las consultas de Transact-SQL deben optimizarse o que
es necesaria una actualización de la CPU.

Entrada/Salida de disco Las consultas de Transact-SQL se pueden


optimizar para reducir la E/S innecesaria; por
ejemplo, mediante el uso de índices.
Conexiones de Usuario Puede haber demasiados usuarios obteniendo acceso al
servidor de forma simultánea, lo que disminuye el
rendimiento
Bloqueos de cierre Las aplicaciones diseñadas incorrectamente pueden
causar simultaneidad de obstáculos y bloqueos, lo que
genera tiempos de respuesta más largos y un menor
rendimiento de las transacciones.

OPTIMIZACIÓN DE BASE DE DATOS CON SQL SERVER

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, se pueden 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.

VENTAJAS DEL ASISTENTE DEL ASISTENTE PARA LA OPTIMIZACIÓN DE


BASE DE DATOS (DTA)

El Asistente para la optimización de motor de base de datos de Microsoft (DTA) analiza las
bases de datos y hace recomendaciones que se pueden 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, se pueden 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.
La optimización del rendimiento de las consultas puede ser difícil sin un conocimiento
completo de la estructura de la base de datos y de las consultas que se ejecutan en ella. El
Asistente para la optimización de motor de base de datos puede facilitar esta tarea mediante
el análisis de la memoria caché de plan de consulta actual o de la carga de trabajo de las
consultas de Transact-SQL que crea, y con la recomendación de un diseño físico adecuado.
Para administradores de bases de datos más avanzadas, DTA expone un mecanismo eficaz
para realizar análisis condicionales de exploración de diferentes alternativas de diseño
físico. DTA puede proporcionar la siguiente información:
• Recomendar la mejor combinación de índices para las bases de datos mediante el
uso del optimizador de consultas para analizar las consultas de una carga de trabajo.
• Recomendar particiones alineadas y no alineadas para las bases de datos a las que se
hace referencia en una carga de trabajo.
• Recomendar vistas indizadas para las bases de datos a las que se hace referencia en
una carga de trabajo.
• Analizar los efectos de los cambios propuestos en aspectos tales como el uso de
índices, la distribución de consultas entre tablas y el rendimiento de las consultas de
la carga de trabajo.
• Recomendar métodos para optimizar la base de datos con respecto a un pequeño
conjunto de consultas problemáticas.
• Permitirle personalizar la recomendación mediante la especificación de opciones
avanzadas como, por ejemplo, las restricciones de espacio en disco.

CACHEAR LAS CONSULTAS EN LA BASE DE DATOS

Activar la caché de base de datos del SGBD a veces puede empeorar el rendimiento. Esto
depende del volumen de datos al que se acceda más
frecuentemente. Si el volumen de datos es alto y se actualiza frecuentemente, estaremos
siempre escribiendo en la caché en lugar de leer de ella. Así que normalmente es preferible
recurrir a un sistema de caché externo, en el cual podamos controlar que se van a cachear
realmente los datos más frecuentes y más frescos. Si el sistema de caché no nos provee de
esta funcionalidad, podemos implementarla nosotros. Una buena forma de hacerlo sin el
sobrecoste de almacenar el número de veces que se accede a una consulta es generar un
número aleatorio y cachear la consulta si ese número pasa de cierto valor. Por ejemplo,
supongamos que generamos un número aleatorio entre 1 y 100 y la consulta se cachea si
dicho número es menor que 10, de esta forma se guardará la consulta en caché con una
probabilidad del 10% en cada petición, así si la consulta tiene más peticiones, será más
probable que se guarde en caché.
REFERENCIAS

Oracle Virtual BOX. VirtualBox. Obtenido de VirtualBox: https://www.virtualbox.org/ sena


Configuración de sistemas manejadores de base de datos SENA
https://www.dataprix.com/553-cache-consultas-mysq
https://www.hostinet.com/formacion/bases-de-datos/como-optimizar-base-datos- mysql/

También podría gustarte