Вы находитесь на странице: 1из 8

TCNICAS PARA LA OPTIMIZACIN DE BASES DE DATOS

ESTELLA DEL CARMEN SALEME LUGO

TUTOR: ING ANDRS JULIN HOYOS CAICEDO

SENA
ESPECIALIZACIN EN GESTIN Y SEGURIDAD DE BASES DE DATOS
FEBRERO DE 2016
TCNICAS PARA LA OPTIMIZACIN DE BASES DE DATOS

Las tcnicas para la optimizacin de las bases de datos est dada bajo varios
parmetros, primeramente hay que realizar una supervisin 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 evaluacin 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
lgica y fsica 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 supervisin y optimizacin del rendimiento, entre ellas


podemos detallar las siguientes:

Descripcin de la tarea Tema


Proporciona los pasos necesarios para
Supervisar los componentes de SQL
supervisar eficazmente cualquier
Server
componente de SQL Server.
Enumera las herramientas de
Herramientas de supervisin y
supervisin y optimizacin de SQL
optimizacin del rendimiento
Server.
Proporciona informacin acerca de
Establecer una lnea base del
cmo establecer una lnea base de
rendimiento
rendimiento.
Describe cmo aislar problemas de
Aislar problemas de rendimiento
rendimiento de base de datos.
Describe cmo supervisar y seguir el
rendimiento del servidor para Identificar los cuellos de botella
identificar cuellos de botella.
Describe cmo usar SQL Server y las
Supervisin de la actividad y
herramientas de supervisin de
rendimiento del servidor
rendimiento y actividad de Windows.
Describe cmo mostrar y guardar
planes de ejecucin en un archivo de Mostrar y guardar planes de ejecucin
formato XML.
De acuerdo a todo lo planteado anteriormente, es claro que la supervisin es
importante, ya que SQL Server ofrece un servicio en un entorno dinmico. Los
datos de la aplicacin cambian. El tipo de acceso que requieren los usuarios
cambia. La forma de conexin de los usuarios cambia. Tambin pueden cambiar
los tipos de aplicaciones que tienen acceso a SQL Server, pero SQL Server
administra automticamente los recursos del sistema, como la memoria y el
espacio en disco, para minimizar la necesidad de optimizar manualmente el
sistema. La supervisin 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 supervisin;
2) Seleccionar las herramientas apropiadas; 3) Identificar los componentes que
se desean supervisar; 4) Seleccionar mtricas para dichos componentes; 5)
Supervisar el servidor y por ltimo, Analizar los datos.

HERRAMIENTAS DE SUPERVISIN Y OPTIMIZACIN DEL RENDIMIENTO

SQL Server proporciona un conjunto de herramientas para supervisar los


eventos de este SGBD y para optimizar el diseo de la base de datos fsica. La
eleccin de la herramienta depende del tipo de supervisin u optimizacin que
se realice y de los eventos particulares que se supervisen. A continuacin se
describen las herramientas de supervisin y optimizacin de SQL Server:

Herramienta Descripcin
El SQL Server Profiler realiza un seguimiento de los
eventos de procesos del motor, como el inicio de un
lote o una transaccin, que permite supervisar la
actividad del servidor y de la base de datos (por
sp_trace_setfilter ejemplo, interbloqueos, errores irrecuperables o
(Transact-SQL) actividad de inicio de sesin). Puede capturar datos de
SQL Server Profiler en un archivo o una tabla de SQL
Server para su anlisis posterior y tambin puede
reproducir paso a paso los eventos capturados en SQL
Server para ver qu sucedi exactamente.
Distributed Replay de Microsoft SQL Server puede usar
SQL Server
varios equipos para reproducir los datos de
Distributed Replay
seguimiento, simulando una carga de trabajo crtica.
La funcin principal del Monitor de sistema es hacer un
seguimiento del uso de los recursos, como el nmero
de solicitudes de pgina del administrador de bfer
activas, que permite supervisar el rendimiento y la
Supervisar el uso de
actividad del servidor mediante el uso de objetos y
recursos (Monitor de
contadores predefinidos o contadores definidos por el
sistema)
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,
nmero de transacciones activas, nmero de bloqueos
bloqueados o actividad de la CPU). Puede establecer
umbrales en contadores especficos 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.
El Monitor de actividad de SQL Server Management
Studio muestra informacin grfica acerca de:
Los procesos que se ejecutan en una instancia
Abrir el Monitor de
de SQL Server.
actividad (SQL
Los procesos bloqueados.
Server Management
Bloqueos.
Studio)
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 definen trazas:
sp_trace_create (Transact-SQL)
SQL, seguimiento 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 aplicacin 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 bsqueda de texto
Registros de errores
completo. Contiene informacin acerca de los eventos
de SQL Server que no est disponible en ningn otro
lugar. Puede utilizar la informacin del registro de
errores para solucionar problemas relacionados con
SQL Server.
Los siguientes procedimientos almacenados del
sistema de SQL Server suponen una alternativa muy
Procedimientos eficaz para realizar muchas tareas de supervisin:
almacenados del Procedimiento
Descripcin
sistema (Transact- almacenado
SQL) Notifica informacin de
sp_who
instantneas acerca de los
(Transact-SQL)
usuarios y procesos actuales de
SQL Server, incluida la
informacin sobre la instruccin
que se ejecuta actualmente y si
la instruccin est bloqueada.
Proporciona informacin de
instantnea acerca de bloqueos,
sp_lock incluidos los identificadores de
(Transact-SQL) objeto y de ndice, el tipo de
bloqueo y el tipo o recurso al que
se aplica el bloqueo.
Muestra una estimacin de la
sp_spaceused cantidad actual de espacio en
(Transact-SQL) disco que utiliza una tabla (o toda
la base de datos).
Muestra estadsticas que incluyen
el uso de la CPU, el uso de E/S y
sp_monitor
el tiempo de inactividad desde la
(Transact-SQL)
ltima vez que se ejecut
sp_monitor.
Las instrucciones DBCC (Comandos de consola de base
DBCC (Transact- de datos) permiten comprobar las estadsticas de
SQL) rendimiento y la coherencia lgica y fsica de una base
de datos.
Las funciones integradas muestran estadsticas de
instantneas acerca de la actividad de SQL Server
desde el inicio del servidor; estas estadsticas se
almacenan en contadores de SQL Server predefinidos.
Por ejemplo, @@CPU_BUSY contiene el tiempo que la
Funciones integradas
CPU ha estado ejecutando cdigo de SQL Server,
(Transact-SQL)
@@CONNECTIONS contiene el nmero de conexiones
o intentos de conexiones de SQL Server y
@@PACKET_ERRORS contiene el nmero de
paquetes de red generados en conexiones de SQL
Server.
Las marcas de seguimiento muestran informacin
Marcas de
acerca de una actividad especfica en el servidor para
seguimiento
diagnosticar problemas o causas de bajo rendimiento
(Transact-SQL)
(por ejemplo, cadenas de interbloqueos).
El Asistente para la optimizacin de motor de base de
datos analiza los efectos en el rendimiento de las
Asistente para la
instrucciones Transact-SQL ejecutadas en las bases de
optimizacin de
datos que desea optimizar. El Asistente para la
motor de base de
optimizacin de motor de base de datos proporciona
datos
recomendaciones para agregar, quitar o modificar
ndices, vistas indizadas y particiones.
A continuacin se realizar en forma detallada como se hace la eleccin de la
herramienta de supervisin, ya que esto depende del evento o de la actividad
que se va a supervisar.

SQL Monitor Monitor Registros


Evento o Distributed Transact-
Server de de de
actividad Replay SQL
Profiler sistema actividad errores
Anlisis de
Si Si
tendencias
S
Reproduccin (desde S (desde
de los eventos un varios
capturados equipo equipos)
nico)
Supervisin ad
Si Si Si Si
hoc
Generacin de
Si
alertas
Interfaz grfica Si Si Si Si
Uso en
aplicaciones S 1 Si
personalizadas

ESTABLECER UNA LNEA 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 lnea 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 mnimo, utilice las medidas de lnea base para determinar:
Las horas con el mximo y el mnimo nivel de funcionamiento.
Tiempos de respuesta de comandos de procesamiento por lotes o
consultas de produccin.
Tiempos de finalizacin de operaciones de copias de seguridad y
restauracin de bases de datos

Cuando haya establecido la lnea base para el rendimiento del servidor, compare
las estadsticas de la lnea base con el rendimiento actual del servidor. Unas
cifras demasiado elevadas o demasiado reducidas con respecto a la lnea base
indican que hay que realizar una investigacin ms 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
estadsticas de columnas u otros ndices.

AISLAR PROBLEMAS DE RENDIMIENTO

A menudo suele ser ms 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 caracterstica Plan de ejecucin grfico, denominada tambin plan
de presentacin, le ayuda a reconocer los interbloqueos en una sola consulta.
Sin embargo, puede reconocer ms fcilmente otros problemas de rendimiento
si utiliza conjuntamente las caractersticas de supervisin 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 programacin 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 diseo incorrecto de la base de datos.

HERRAMIENTAS PARA SOLUCIONAR PROBLEMAS COMUNES DE


RENDIMIENTO

Igual de importante es la correcta seleccin 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 supervisin y


optimizacin y los problemas que ayudan a solucionar.

- Identificar los cuellos de botella

El acceso simultneo a recursos compartidos causa cuellos de botella. En


general, los cuellos de botella estn 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 duracin 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 ms tiempo debido a una congestin
de la red.

A continuacin 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 SQL Server, el rendimiento disminuir. Los datos
Uso de la se deben leer en el disco, y no directamente en la cach de
memoria datos. Los sistemas operativos Microsoft Windows realizan
una paginacin excesiva intercambiando datos con el disco
cuando son necesarias las pginas.
Un uso excesivo continuo de la CPU puede indicar que las
Uso de la CPU consultas de Transact-SQL deben optimizarse o que es
necesaria una actualizacin de la CPU.
Las consultas de Transact-SQL se pueden optimizar para
Entrada/salida
reducir la E/S innecesaria; por ejemplo, mediante el uso de
(E/S) de disco
ndices.
Puede haber demasiados usuarios obteniendo acceso al
Conexiones de
servidor de forma simultnea, lo que disminuye el
usuario
rendimiento.
Las aplicaciones diseadas incorrectamente pueden causar
Bloqueos de simultaneidad de obstculos y bloqueos, lo que genera
cierre tiempos de respuesta ms largos y un menor rendimiento
de las transacciones.

Вам также может понравиться