Anda di halaman 1dari 27

Tcnicas avanzadas de

Monitoreo
Utilizando DMV, Extended Events y Service Broker

Javier Villegas DBA | MCP | MCTS


Speaker Bio

Database Administrator Picture Here


Desde el ao 1997 SQL 6.0 -> SQL 2016
MCP - MCTS

DBA en Mediterranean Shipping Company (MSC)


Desde el ao 2006
@javier_vill
Miembro de la comunidad PASS
Desde el ao 2008
https://ar.linkedin.com/in/javiervillegas

http://sql-javier-villegas.blogspot.com.ar/

2
Agenda

Analizando la actividad de SQL Server


Monitoreo Continuo con Extended Events (XEvents)
Monitoreo Proactivo (DMV / Powershell)
Auditoria utilizando Service Broker

3
Analizando la actividad de SQL Server

dbo.SP_DBA_CurrentlyExec
http://1drv.ms/1j9es6f

Nos permite visualizar rpida y gilmente toda la actividad de SQL.


Cada fila representa una sesin activa dentro de la instancia
Podemos ver:
SPID, Uso total de CPU, Estado, Hora de Inicio, tiempo de ejecucin, Tiempos de Lectura/Escritura, SQL
Statement, Nombre de Base de Datos y utilizacin del transaction log de la misma, Nombre de objeto, Tipo de
Wait Stat, Login, Host y nombre de la aplicacin
En caso de detectar bloqueos aparecer un segundo resultset mostrando solo las sesiones
involucradas en los mismos
til para detectar rpidamente problemas de performance

4
dbo.SP_DBA_CurrentlyExec

Ejemplo

Bloqueos

5 5
dbo.SP_DBA_CurrentlyExec

dbo.SP_DBA_CurrentlyExec @info=1

dbo.SP_DBA_CurrentlyExec @Filter_Name=App_Name, @Filter_Value=SSIS


dbo.SP_DBA_CurrentlyExec @Filter_Name=Host_Name, @Filter_Value=WORKSTS01

6 6
dbo.SP_WhoIsActive

7 7
sp_server_diagnostics

Captura informacin de diagnostico y datos sobre estado de salud del entorno


SQL Server para detectar posibles fallos en el sistema.

Es un proceso que se ejecuta constantemente y que actualiza la informacin


de salida peridicamente

8 8
sp_server_diagnostics

Create_Time
Timestamp de creacin del registro
Component_Type
Tipo de Componente
Component_Name
Informa el componente involucrado o del nombre de un Availability Group de AlwaysOn
State
Informa el estado del componente, los valores pueden ser 0, 1, 2 o 3
State_Desc
Descripcin del estado de lo que ha sido informado en State , los valores pueden ser
Unknown, Clean, Warning, Error
Data
Registro XML con los datos recopilados del componente en cuestin

9 9
sp_server_diagnostics

System
Datos de utilizacin de CPU, Dumps, Pages, etc.
Resource
Datos de memoria
Query_processing
Datos de procesamientos de Queries (Tasks, Wait Stats, bloques, etc.)
IO_subsystem
Datos de I/O
Events
Datos de los eventos del server
Availability Group
Datos relacionados al Availability Group en caso de que la instancia utilice AlwaysOn

10 10
sp_server_diagnostics

Ejemplos

11 11
Analizando la actividad de SQL Server

Otras herramientas
Performance Monitor
Activity Monitor
SQL Server Performance Dashboard
https://www.microsoft.com/en-us/download/details.aspx?id=29063
SQL Profiler *
Extended Events

12 12
Monitoreo Continuo utilizando Extended Events

Extended Events
Sistema de control de eventos general
Correlacin de base de datos y sistema operativo
Herramienta de seguimiento (Performance Monitor / SQL Trace)
Configuracin de control de eventos basado en T-SQL
til para realizar troubleshooting sin impactar la performance (Carga adicional mnima)
Recolectar datos desde cualquier lado
I/O
Waits
Parmetros de un Query
Plan de Ejecuciones
Lock

13 13
Monitoreo Continuo utilizando Extended Events

Extended Events - Componentes


Session
Contiene la definicin de lo que voy a recolectar, cuando recolectarlo y donde almacenarlo
Target (Destino)
Memoria (Ring Buffer)
A un archivo
Package (Paquete)
Contenedores Lgicos
SQLOS, SQLSERVER, SecAudit, SQLCLR, etc.
Events
Recoleccin de datos de la actividad de SQL Actions

14 14
Monitoreo Continuo utilizando Extended Events

Extended Events
Podemos realizar los mismos tipos de capturas que con SQL Profiler
Mucho mas gil que SQL Profiler.
Fcil de manipular.

15 15
DEMO

Visualizando la actividad de SQL Server


SP_DBA_CurrentlyExec
SP_Server_Diagnostics

Extended Events
Errores de SQL
Deadlocks
Statements que se ejecutan por tiempo prolongado

16 16
Monitoreo Proactivo utilizando DMV y PowerShell

Recoleccin continua y de informacin importante relacionada con los signos vitales del
entorno
Versin, Edicin de SQL y Windows
MAXDOP
Cluster
Database Mirroring/AlwaysOn
Network
Transacciones Activas
Transacciones por segundo
Conexiones Numero de Requerimientos por Segundo
Contadores de Performance Monitor relacionados con I/O utilizando PowerShell
Latencias de IO

17 17
Monitoreo Proactivo utilizando DMV y PowerShell

Adicionalmente
SQL Job que se ejecuta cada minuto y realiza las siguientes tareas
Ejecuta currently executing. Almacena el resultado solo si hay bloqueos o si hay algn Statement
ejecutndose por mas de 2 minutos.
Enva email con reportes de bloqueos (configurable)
La tabla utilizada para guardar la salida de Currently Executing es til cuando tenemos que investigar problemas
de performance en el pasado.
Detecta Statements corriendo por mas de N minutos (Enva email con reporte)
Chequea utilizacin del porcentaje de uso del transaction log de todas las bases (Enva email con
reporte)
Espacio libre en los discos (enva email cuando quedan menos de 1 GB o 7 % del total)
Detecta transacciones abiertas por mas de N minutos
Detecta SQL Dumps
Detecta errores crticos en el SQL Error Log
Utilizacin de los discos utilizado contadores de PerfMon
Reporte de Latencia de los discos

18 18
Auditoria

Utilizando Service Broker podemos realizar un sistema de que nos permitir auditar la
manipulacin de objetos dentro de una base de datos de usuario,
Tendremos un registro identificando el CREATE , DROP o ALTER
Cada registro nos informara lo siguiente:
TimeStamp del Evento
Tipo de Evento
CREATE_PROCEDURE, DROP_TABLE, etc.
Login con el que se realizo dicho evento
Esquema y Nombre de Objeto
Tipo de Objeto
Session ID con el que se realizo el evento
HostName (*)
Detalle del Evento XML

19 19
Monitoreo Proactivo utilizando DMV y PowerShell

20 20
Monitoreo Proactivo utilizando DMV y PowerShell

21 21
Monitoreo Proactivo utilizando DMV y PowerShell

22 22
Monitoreo Proactivo utilizando DMV y PowerShell

23 23
Monitoreo Proactivo utilizando DMV y PowerShell

24 24
DEMO

Monitoreo Proactivo

Auditoria

25 25
Preguntas?
Gracias por asistir
Follow @pass24hop

Share your thoughts with hashtags


#pass24hop & #sqlpass