Professional Documents
Culture Documents
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.
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.
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.
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.