Anda di halaman 1dari 20

Laboratorio 1 - Activity Monitor

Ejercitaremos con la herramienta Activity Monitor para ver la actividad del servidor y solucionar problemas de un
proceso bloqueado.

1. Inicie SQL Server Management Studio y conéctese a la instancia a usar con autenticación Windows.
2. Puede acceder al Activity Monitor desde el Object Explorer o desde el botón de la barra de herramientas.

3. En el Activity Monitor, observe los gráficos de la solapa Overview que muestran la actividad en background
de la instancia de SQL Server.

4. Expanda la solapa Processes y observe los procesos que actualmente se están ejecutando en la instancia de
SQL Server. Preste especial atención a los valores de las columnas Session ID, Login, Database, Task State,
Command y Application.
5. Active el filtro para la columna Application, y filtre sólo los procesos de la aplicación Microsoft SQL Server
Management Studio.

6. Elimine el filtro anterior mostrando todas las aplicaciones.

7. Expanda la solapa Resource Waits y observe la estadística para procesos que están esperando algún recurso.
8. Expanda la solapa Data File I/O y observe detalles sobre la actividad de E/S de archivos de base de datos.

9. Expanda la solapa Recent Expensive Queries y observe la lista de consultas que han consumido recursos de
procesamiento.
Solucionar problemas de un proceso bloqueado:
Este ejercicio usa instrucciones T-SQL para la base de datos Adventureworks (dentro de los archivos .cmd y por
consola). Si esta base de datos no está instalada en el servidor donde usted está ejercitando, en el Alumni en la
sección de descargas de la clase 1 dispone de un backup para hacer un restore en el servidor de práctica.

1. Mantenga el Activity Monitor abierto y baje el archivo ActivityWorkload.cmd del Alumni; ubique el
archivo en una carpeta con su nombre en la máquina donde está ejercitando. Luego ejecute el archivo
ActivityWorkload.cmd como administrador. El comando quedará en ejecución.

2. En SQL Server Management Studio, en el Object Explorer, expanda Databases, expanda la base de datos
AdventureWorks, y expanda Tables. Click derecho en Production.Product y click Select Top 1000 Rows.
3. Abajo en la barra de estado del panel de consulta, observe que la consulta continúa ejecutándose y nunca
termina. Otro proceso está provocando que la consulta no finalice, la está bloqueando.

4. En el Activity Monitor en la solapa Processes, filtre la columna Task State para mostrar los procesos con
estado SUSPENDED.

5. Elimine el filtro de la columna Task State para ver todos los procesos, y busque el número de proceso desde
la columna Blocked By que está bloqueando al proceso SUSPENDED. Observe también el valor de la
columna Head Blocker del proceso que bloquea (el número de proceso está en la primer columna llamada
Session ID). Un valor de 1 indica que este proceso es el primero en una cadena que está bloqueando a otros.
6. Click derecho en el proceso que bloquea y click en Details. Vemos el código T-SQL que provoca el bloqueo,
es una transacción iniciada que todavía no fué confirmada (COMMIT) o deshecha (ROLLBACK).

7. Click Kill Process y acepte la confirmación. Luego de unos segundos la lista de la solapa Processes debería
actualizarse desapareciendo los procesos bloqueados.
8. Cierre el Activity Monitor y verifique que la consulta de la tabla Production.Products ahora ha finalizado.
Laboratorio 2 - Performance Monitor

Ejercitaremos con la herramienta Performance Monitor para análisis de contadores de rendimiento. La herramienta
pertenece a Windows.

1. Click derecho en el botón Start de Windows y click en Computer Management.

2. En Computer Management, expanda Performance, expanda Monitoring Tools y click Performance Monitor.
3. En la barra de herramientas click en el botón Add , y en la lista de objetos que permite seleccionar los
contadores a analizar seleccione los siguientes contadores agregandolos a la lista Added Counters (los
mismos están clasificados por categorías):

Categoría Contador Instancia


Processor % Processor Time _Total
Memory Page Faults/sec
SQLServer:Locks Average Wait Time (ms)_Total
Lock Requests/sec _Total
Lock Waits/sec _Total
SQLServer:Plan Cache Cache Hit Ratio _Total
SQLServer:TransactionsTransactions
4. En el cuadro Add Counters, click en OK. Luego observe que los contadores agregados se visualizan en
Performance Monitor.

5. En la barra de herramientas click en el botón Freeze Display y observe que se pausa el gráfico. Luego
en el botón Unfreeze Display para continuar con el gráfico.
6. En la barra de herramientas click en el botón Change Graph Type, seleccione Histogram bar y observe el
gráfico resultante.
7. Modifique nuevamente el tipo de gráfico y seleccione Report para un informe basado en texto.

8. Vuelva al tipo de gráfico inicial: Line.


9. Click en cualquier contador de la lista inferior y en la barra de herramientas seleccione Highlight así
visualizamos el contador en el gráfico. Pulse las teclas flecha arriba y flecha abajo del teclado para
seleccionar en el gráfico un contador diferente.
10. Baje el archivo PerformanceWorkload1.cmd del Alumni; ubique el archivo en una carpeta con su nombre
en la máquina donde está ejercitando. Luego ejecute el archivo PerformanceWorkload1.cmd como
administrador. El comando quedará en ejecución y genera actividad en la base de datos.

Nota: El archivo PerformanceWorkload1.cmd usa instrucciones T-SQL para la base de datos


Adventureworks. Si esta base de datos no está instalada en el servidor donde usted está ejercitando, en el
Alumni en la sección de descargas de la clase 1 dispone de un backup para hacer un restore en el servidor de
práctica.

11. En Performance Monitor, observe el efecto en los contadores de la sobrecarga que está en ejecución.
12. Cancele la ejecución de la sobrecarga y cierre Performance Monitor.

Laboratorio 3 - Database Engine Tuning Advisor

Ejercitaremos con la herramienta Database Engine Tuning Advisor.


Esta herramienta ayuda a identificar el conjunto óptimo de índices y estadísticas para una sobrecarga dada
(workload), sin necesidad de tener un nivel experto de conocimiento del esquema de la base de datos, de
sobrecargas, o de temas específicos e internos de Sql Server. También recomienda opciones de mejora para un
conjunto acotado de problemas en las consultas. Destacamos que si bien la herramienta da beneficios, puede causar
daños estructurales si no se la usa correctamente! y con conocimiento general de diseño de bases de dato. Sea
cuidadoso!

Para acceder a la herramienta:

· Desde Management Studio en menú Tools o click derecho en ventana de script de código T-SQL:
El Database Engine Tuning Advisor (DTA) está conectado al servidor, si no lo está deberá logearse a él y crear una
sesión con un nombre a fines de documentar los análisis que va haciendo. Luego deberá seleccionar una sobrecarga
(workload). La sobrecarga puede ser:

Un archivo de Trace (traza), generado en forma manual con stored procedures de sql server o con el Sql
Profiler. Una traza permite registrar toda la actividad que realiza una instancia de sql server en un entorno
productivo, para luego poder analizarla (Sql Trace está fuera del alcance de este curso pero en próximas
clases se ejercitará con Sql Profiler).
Una tabla
Los queries existentes en el plan caché actual
Una consulta (sólo si se inicia el DTA desde una ventana de edición de consultas).

También deberá indicar la base de datos y las opciones a analizar.

Analizando una consulta


Puede usar DTA para que recomiende índices para toda una base de datos, utilizando una sobrecarga que represente
toda la actividad productiva, o también para analizar consultas problemáticas.

Veremos un ejemplo con una consulta de la tabla Sales.SalesOrderHeader. La tabla actualmente tiene estos índices:

1 índice PK clustered por el campo SalesOrderID (Primary Key), y


4 índices no clustered (no únicos y únicos) por los campos SalesPersonID, CustomerID, SalesOrderNumber
y rowguid.

Nota: en las siguientes clases se verán con más detalle los distintos tipos de índices.

1. Escriba la siguiente consulta y pruébela. Recuperará registros de detalles de ordenes entre fechas.

Copiar a Clipboard

select soh.duedate,soh.customerid, soh.status

from sales.salesorderheader as soh

where soh.duedate between '1/1/2008' and '2/1/2008'

2. Inicie el DTA para analizar las sugerencias de la consulta anterior. Modifique el nombre de la sesión por
PruebaDTA y verifique que la base de datos a analizar es AdventureWorks.
3. Para este ejemplo, seleccionaremos las siguientes opciones de análisis:

Puede limitar el tiempo del análisis (Limit tuning time). Por omisión el valor es una hora, pero para grandes
sobrecargas o consultas muy complejas pueden requerir mayor tiempo de ejecución del análisis.
Puede incluir índices filtrados (Include Filtered Indexes) así si un índice filtrado ayuda a mejorar la
performance, éste será considerado.
Puede indicar que considere una estrategia de particionado (Full Partitioning).
Puede indicar que considere cambios estructurales en el esquema de la base de datos si ayudan a mejorar la
performance (Do not Keep Any existing PDS). Cuidado con este último punto! Generalmente existen
dependencias estructurales de aplicaciones cliente que usan la base de datos.

4. Verifique las opciones según la siguiente imagen e inicie el análisis, con el botón Start Analisys:

5. Obtendrá este resultado.


6. Estas recomendaciones iniciales no representan un buen conjunto de opciones. Según la imagen anterior
DTA ha recomendado “eliminar” una gran cantidad de índices en la base de datos…

Esto ocurre porque DTA asume que la sobrecarga analizada (la única consulta escrita), es la carga completa
de la base de datos. Si hay índices que no serán usados, su recomendación es eliminarlos. Cuidado con la
sobrecarga que se decide analizar, debe ser completa representando la actividad productiva de una base de
datos!!!
7. Crearemos otra sesión de análisis modificando las opciones para no obtener como sugerencia la eliminación
de todos los índices.
Indique mantener la estructura (Keep all existing PDS en la sección physical design structure).
8. Clone la sesión y vuelva a ejecutarlo con estas opciones:
9. Verá la recomendación de crear un índice:

10. Observe distintos reportes en la solapa Reports:

Statement cost report

Statement detailed report


Index usage report (current y recommended)

Database, table y column Access report, entre otros


11. La recomendación que surge del DTA debe ser seriamente analizada! Si decide aplicarla, en este caso la
creación de un nuevo índice, puede aplicarla automáticamente o calendarizarla, desde menú Actions – Apply
recommendations:

12. O aplicarla manualmente copiando la instrucción de cambio desde la misma ventana:


13. Agregue a la base de datos el siguiente stored procedure.

Copiar a Clipboard

CREATE PROCEDURE dbo.uspProductSize

AS

SELECT p.ProductID,

p.Size

FROM Production.Product AS p

WHERE p.Size = '62';

14. Ejecute el sp para observar el resultado e índice desde la ventana de código el DTA:

Copiar a Clipboard

exec dbo.uspProductSize

15. Vea que para la tabla que usa el sp, ha recomendado la creación de un índice.

Anda mungkin juga menyukai