17
Troubleshooting Essentials en SQL Server 2012 Guillermo Taylor F. Consultor Senior TI & Especialista SQL Server [email protected] http:// mastergt68.wordpress.com

01 troubleshooting essentials en sql server 2012 sql pass peru

Embed Size (px)

Citation preview

Page 1: 01 troubleshooting essentials en sql server 2012   sql pass peru

Troubleshooting Essentials en SQL Server 2012

Guillermo Taylor F.Consultor Senior TI & Especialista SQL [email protected] http://mastergt68.wordpress.com

Page 2: 01 troubleshooting essentials en sql server 2012   sql pass peru

Hoy hablaremos de…

Contexto de desempeñoMetodología de TroubleshootingHerramientas en SQL Server 2012

Algunas mejoradas y una nueva…Herramientas de tercerosConclusionesDocumentación y referencia

Page 3: 01 troubleshooting essentials en sql server 2012   sql pass peru

Desempeño o rendimiento

Escribir consultas eficientesGenerar índices adecuadosCrear vistas donde deben de crearse vistasCrear funciones de usuario e invocarlas donde correspondeCrear procedimientos almacenados adecuados a nuestros requerimientosUsar los distintos niveles de aislamiento de manera adecuadaManejo de transacciones (commit/rollback)

Page 4: 01 troubleshooting essentials en sql server 2012   sql pass peru

Metodología de Troubleshooting

Monitorear

Troubleshoot

Afinar/ OptimizarProbar

Desplegar

Círculo virtuoso…

Page 5: 01 troubleshooting essentials en sql server 2012   sql pass peru

Monitoreo

Recolección de métricas

Almacenamiento de datos significativos en el tiempo

Cálculo de medidas tipo “Baseline”

Page 6: 01 troubleshooting essentials en sql server 2012   sql pass peru

Troubleshooting

Identificar el problema

Medir el impacto

Refinar la recolección de datos

Page 7: 01 troubleshooting essentials en sql server 2012   sql pass peru

Afinamiento y optimización

Corrección del problema

Mejorar el “Query”

Modificar la aproximación

Page 8: 01 troubleshooting essentials en sql server 2012   sql pass peru

Prueba y despliegue

Validar el comportamiento

Mover a producción

Confirmar con los usuarios

Page 9: 01 troubleshooting essentials en sql server 2012   sql pass peru

La importancia de probar…

Page 10: 01 troubleshooting essentials en sql server 2012   sql pass peru

Herramientas en SQL Server 2012

Monitor de actividadRecolección de datosAlgunas “vistas dinámicas”

sys.dm_os_wait_statssys.dm_os_performance_counters

Solo contadores de SQL Serversys.dm_io_virtual_file_stats

Eventos extendidos (requiere otra sesión…)exec sp_server_diagnostics @repeat_interval=5

Nuevo en SQL Server 2012!

Page 11: 01 troubleshooting essentials en sql server 2012   sql pass peru

Monitor de actividadRecolección de datos

demo

Page 12: 01 troubleshooting essentials en sql server 2012   sql pass peru

¿Y, qué contadores “debo” usar?\Memory \% Committed Bytes In Use \Memory \Available Bytes \Memory \Cache Bytes \Memory \Cache Faults/sec \Memory \Committed Bytes \Memory \Free & Zero Page List Bytes \Memory \Modified Page List Bytes \Memory \Pages/sec \Memory \Page Reads/sec \Memory \Page Write/sec \Memory \Page Faults/sec \Memory \Pool Nonpaged Bytes \Memory \Pool Paged Bytes \Memory \Standby Cache Core Bytes \Memory \Standby Cache Normal Priority Bytes \Memory \Standby Cache Reserve Bytes \Memory \Pool Paged Bytes \Memory \Write Copies/sec \Process(_Total) \* \Process($(TARGETPROCESS)) \* \Process(*) \Thread Count \Process(*) \% Processor Time \Process(*) \IO Read Bytes/sec \Process(*) \IO Write Bytes/sec \Process(*) \Private Bytes \Process(*) \Working Set \Processor(*) \% Processor Time \Processor(*) \% User Time \Processor(*) \% Privileged Time \Server Work Queues(*) \Queue Length \LogicalDisk(*) \% Disk Time \LogicalDisk(*) \Avg. Disk Queue Length \LogicalDisk(*) \Avg. Disk Read Queue Length \LogicalDisk(*) \Avg. Disk Write Queue Length \LogicalDisk(*) \Avg. Disk sec/Read \LogicalDisk(*) \Avg. Disk sec/Write \LogicalDisk(*) \Avg. Disk sec/Transfer \LogicalDisk(*) \Disk Reads/sec \LogicalDisk(*) \Disk Bytes/sec \LogicalDisk(*) \Disk Writes/sec \LogicalDisk(*) \Split IO/sec \System \Processor Queue Length \System \File Read Operations/sec \System \File Write Operations/sec \System \File Control Operations/sec \System \File Read Bytes/sec \System \File Write Bytes/sec \System \File Control Bytes/sec \Network Interface(*) \Bytes Total/sec \Network Interface(*) \Output Queue Length \$(INSTANCE):Buffer Manager \Stolen pages \$(INSTANCE):Buffer Manager \Page life expectancy \$(INSTANCE):Memory Manager \Memory Grants Outstanding \$(INSTANCE):Memory Manager \Memory Grants Pending \$(INSTANCE):Databases(_Total) \Transactions/sec \$(INSTANCE):Databases(tempdb) \Transactions/sec \$(INSTANCE):Databases(*) \Active Transactions \$(INSTANCE):General Statistics \Logins/sec \$(INSTANCE):General Statistics \Logouts/sec \$(INSTANCE):General Statistics \User Connections \$(INSTANCE):General Statistics \Logical Connections \$(INSTANCE):General Statistics \Transactions \$(INSTANCE):General Statistics \Processes blocked \$(INSTANCE):General Statistics \Active Temp Tables \$(INSTANCE):SQL Statistics \Batch Requests/sec \$(INSTANCE):SQL Statistics \SQL Compilations/sec \$(INSTANCE):SQL Statistics \SQL Re-Compilations/sec \$(INSTANCE):SQL Statistics \SQL Attention rate \$(INSTANCE):SQL Statistics \Auto-Param Attempts/sec \$(INSTANCE):SQL Statistics \Failed Auto-Params/sec \$(INSTANCE):Plan Cache(_Total) \Cache Hit Ratio \$(INSTANCE):Plan Cache(Object Plans) \Cache Hit Ratio \$(INSTANCE):Plan Cache(SQL Plans) \Cache Hit Ratio \$(INSTANCE):Plan Cache(Temporary Tables & Table Variables) \Cache Hit Ratio \$(INSTANCE):Transactions \Free Space in tempdb (KB) \$(INSTANCE):Workload Group Stats(*) \Active requests \$(INSTANCE):Workload Group Stats(*) \Blocked tasks \$(INSTANCE):Workload Group Stats(*) \CPU usage %

Page 14: 01 troubleshooting essentials en sql server 2012   sql pass peru

Si solo quieren leer un libro…

Page 15: 01 troubleshooting essentials en sql server 2012   sql pass peru

Conclusiones

Revisar el comportamiento de nuestros servidores.Tener mediciones base, para tener contra que comparar.Evaluar el rendimiento y la forma de acceso a los recursos.Debemos de ser proactivos en lugar de ser reactivos.Usar las herramientas de SQL Server 2012.

Page 16: 01 troubleshooting essentials en sql server 2012   sql pass peru

ReferenciaseBook gratuito "Troubleshooting SQL Server: A Guide for the Accidental DBA“

http://www.red-gate.com/products/dba/sql-monitor/entrypage/tame-unruly-sql-servers-ebook

Grant Fritchey’ SQL Server 2012 Query Performance Tuning eBookhttp://www.apress.com/9781430242031

Brent Ozar PLF’s SQL Server First Responder Kithttp://www.brentozar.com/FirstResponder/

Contadores para Rendimiento de SQL Serverhttp://msdn.microsoft.com/es-es/library/bb972264.aspx#EIAA

Troubleshooting Performance Problems in SQL Server 2008http://download.microsoft.com/download/D/B/D/DBDE7972-1EB9-470A-BA18-58849DB3EB3B/TShootPerfProbs2008.docx

Page 17: 01 troubleshooting essentials en sql server 2012   sql pass peru

Troubleshooting Essentials en SQL Server 2012

Guillermo Taylor F.Consultor Senior TI & Especialista SQL [email protected] http://mastergt68.wordpress.com