curso sql tuning

Upload: amvt7100

Post on 09-Jul-2015

192 views

Category:

Documents


1 download

TRANSCRIPT

Curso SQL Server tuning

Presentado por: Ingeniero Elas Willard

CONTENIDOObjetivo del Curso. Configuracin Bsica del Servidor Configuracin Bsica de la Base de Datos Trazas SQL Server Profiler Filtros Eventos Deteccin de Problemas SELECT pesados Plan de Ejecucin Creacin de ndices Stored Procedures pesados Cambio de llaves SQL Server Database Engine Tuning Advisor

OBJETIVO CORPORATIVOMISION Mejorar y eficientar la operacin, as como la toma de decisiones de nuestros clientes, socios y aliados, a travs de la implementacin de nuestras soluciones de tecnologa de informacin.

VISION Ser la empresa de tecnologa de informacin lder en proveer soluciones empresariales de alto valor agregado, logrando relaciones de largo plazo con nuestros clientes, fundamentadas en su satisfaccin total.

OBJETIVO DEL CURSO Posicionar a Intelisis como la marca lder en soluciones de IT. Ofrecer herramientas de valor agregado a ustedes para que a la vez presten una mejor atencin al cliente. Mejorar el proceso de implantacin y soporte a los clientes. Optimizar la operacin del cliente mediante la creacin de ndices y mejoras en cdigo.

CONFIGURACIN BASICA DEL SERVIDOR Versin de SQL Server

Memoria

Procesadores

Conexiones

CONFIGURACIN BASICA DE LA BASE DE DATOS Modo de Recuperacin

Opciones Automticas

SQL SERVER PROFILER

Herramienta que nos ayuda a monitorear cualquier tipo de actividad en el servidor. Permite medir tiempos de ejecucin (Duration) Permite medir lecturas al disco (Reads)

FILTROS EN TRAZAS Se recomienda poner las siguientes trazas apuntando al servidor de produccin:

> 50, 000 Reads > 20, 000 Duration

EVENTOS

DETECCION DE PROBLEMAS SELECT PESADOS

PLAN DE EJECUCIN

Muestra el camino por el cul SQL Server obtendr la informacin. Se obtiene presionando CTRL + L desde SQL Server Management Studio o bien presionando el botn:

CREACION DE INDICES

COMPARANDO LAS TRAZAS Sin ndice

Con ndice

STORED PROCEDURES PESADOS Una vez detectado el SP a optimizar, se pone una traza con las siguientes caractersticas: Filtros Duration >= 1 Reads >= 1 SPID con el que se correr el proceso desde Management Studio Eventos Agregar el evento STMT Completed (Seccin de Stored Procedures)

Nota:

Siempre trabajar en una base de datos de pruebas actualizada; no debe ser muy antigua ya que no se obtendran los mismos resultados. Si se trata de un SP encriptado, es necesario desencriptarlo. Si queremos optimizar algn SP propio de Intelisis, debemos desencriptar toda la base de datos.

Al agregar el evento STMT Completed, el Profiler nos mostrar el detalle de la ejecucin del SP. De esta manera podemos saber exactamente en que parte del cdigo se necesita poner atencin.

Una vez identificado el proceso a optimizar, se crean ndices de la misma manera que el SELECT pesado analizado en el punto anterior

TIPS

Almacenar el resultado de la traza en una tabla de SQL, de esta manera podemos jugar con la informacin y descubrir el problema.

Crear ndices en tablas temporales Usar LOCAL STATIC en cursores siempre y cuando no se use CURRENT OF. Usar SET NOCOUNT ON Evitar el uso de funciones tipo tabla en procesos crticos. Evitar el uso de variables tipo tabla cuando se maneje mucha informacin.

COMPARACION

Antes del proceso de tuning, el SP tomaba aproximadamente 20 segundos en ejecutarse y 28, 000 reads. Despus del proceso de tuning, el mismo SP toma 0.4 segundos y nicamente 6, 000 reads.

CAMBIO DE LLAVES

No siempre es muy recomendable crear ndices en tablas crticas, ya que en vez de mejorar el performance, a SQL le tomar mas trabajo actualizar las estadsticas del ndice al hacer un INSERT o un UPDATE

En vez de crear un nuevo ndice, es mucho mas importante el acomodar de manera correcta la llave, en los casos donde aplique. Veamos el ejemplo de la tabla Mov: En versiones viejas (2800 o anteriores) la llave priMov de la tabla Mov, se compona de la siguiente manera:Empresa, Modulo, ID Esta llave es incorrecta, ya que Empresa es mucho menos selectivo que ID. La manera correcta de acomodar esta llave es: ID, Modulo, Empresa

La sintaxis en SQL para cambiar la llave es:

SQL Server Database Engine Tuning Advisor Una herramienta muy til en el tuning en aquellos casos cuando es muy complicado determinar el ndice es el DETA Para ejecutar esta herramienta, simplemente hacemos clic en el men Query Analyze Query in Database Engine Tuning Advisor. Nota:

DETA analizar el Query que se encuentre seleccionado en la ventana de Management Studio

A continuacin especificamos sobre que base de datos queremos optimizar el query

Y damos clic en el botn de Start Analysis

Y finalmente se nos desplegarn los ndices y estadsticas recomendadas, as como el % de mejora que se logra con dichas sugerencias.

Aplicando el ndice y comparando los planes de ejecucin, vemos que: Antes

Despus

TIPS SDK

Evitar uso de Exploradores en Mdulos Crticos. Reemplazar Exploradores por Cubos OLAP. Obligar al uso de filtros en Tableros de Control (quitar opcin TODOS). Uso de TOP en Tableros de Control. Quitar campos innecesarios en Bsqueda Rpida. Filtros en Reportes por Rangos cortos. Crear Reportes resumidos cuando se pueda. Uso de Servidor de Reportes. Crear procesos nocturnos para procesar informacin de Reportes.

GRACIAS!!!

[email protected]