• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Troubleshooting SQL Server: Un enfoque práctico
 

Troubleshooting SQL Server: Un enfoque práctico

on

  • 649 views

¿Tu servidor SQL Server es escalable? ¿Sospechas que su rendimiento no es el esperado? En esta sesión veremos por donde empezar a realizar un análisis de rendimiento para encontrar los cuellos de ...

¿Tu servidor SQL Server es escalable? ¿Sospechas que su rendimiento no es el esperado? En esta sesión veremos por donde empezar a realizar un análisis de rendimiento para encontrar los cuellos de botella actuales así como potenciales problemas de escalabilidad desde el punto de vista de SolidQ haciendo especial hincapié en los mas comunes que por nuestra amplia experiencia hemos detectado en la mayoria de clientes.

Statistics

Views

Total Views
649
Views on SlideShare
649
Embed Views
0

Actions

Likes
0
Downloads
12
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Troubleshooting SQL Server: Un enfoque práctico Troubleshooting SQL Server: Un enfoque práctico Presentation Transcript

    • REL-322Troubleshooting SQL Server:Un enfoque prácticoEnrique Catalá Bañuls Enrique Puig NousellesMentor – Área relacional DPA – Área relacionalMCT – MCTS – MCITP – MAP 2010 MCT – MCTS – MCITPecatala@solidq.com epuig@solidq.com
    • Agendaα Relational analisisα Agregacion de consultasα Collationsα Alineamiento de particionesα Confiailidad de fkα Indexing β Duplicacion β No usados β Duplicados no usados β Clustered vs nonclusteredα Esperas y Memoriaα HC β Health Check v2 β HC Security β HC Azure
    • Detección de consultas ineficientes¿Por qué es tan importante?α El escenario siempre es tan complejo que nadie sabe la causa de dónde está el problemaα Método infalible: La agregación de consultas β Encontrar patrones T-SQL que producen mayor presión a SQL Server β No buscamos la consulta lenta, buscamos el patrón de consultas que mas hace sufrir al servidor Consulta A: Tiempo de ejecución 5s y 5 ejecuciones en 10 minutos Consulta B: Tiempo de ejecución 300ms y 1000 ejecuciones en 10 minutos Generalmente el cliente siempre se lleva sorpresas 
    • Detección de consultas ineficientes¿Qué buscamos? α Queremos extraer un valor hash que identifique el patrón y agregar por él para calcular lecturas, escrituras, cpu,… Select col1,col2 from mitabla where columna = 14 Select col1,col2 from mitabla where columna = 15 … Select col1,col2 from mitabla where columna = #α ¿qué pasa con esto? exec sp_cursoropen 123456, NSELECT * from table WHERE …’ exec sp_cursorfetch 123456, ‘y’ exec sp_cursorfetch 123456, ‘z’ exec sp_cursorclose 123456 exec sp_cursoropen 123456, NSELECT col1 from another_table,another_table2 WHERE …’ exec sp_cursorfetch 123456, ‘y’,’z’,’w’ …
    • Troubleshooting¿En qué nos fijamos? Database Name Cached Pages Memory (MB) 0% % of memory used BBDD1 BBDD2 588.870 98.906 4600,55 772,7 0% 1% tempdb 2.889 22,57 0% Compiled Plan Proc msdb 1.149 8,98 1% 11% BBDD3 327 2,55 Compiled Plan Trigger BBDD4 174 1,36 BBDD5 138 1,08 18% master 54 0,42 Compiled Plan Adhoc BBDD6 35 0,27 BBDD7 30 0,23 Compiled Plan model 1 0,01 69% Prepared AdventureWorks 1 0,01 Extended Proc Proc ReportServer 1 0,01 AdventureWorksDW 1 0,01 ReportServerTempDB 1 0,01
    • Agregación de consultas
    • T-SQL Query Analizer bySolidQ
    • IndexaciónAlgunas buenas prácticasα Tareas que debemos realizar β Búsqueda de índices faltantes β Búsqueda de índices que no se usan β Búsqueda de índices duplicados β Comparación de índices clústered vs nonclustered β Índices utilizados únicamente en inserciones
    • RelationalIndexingMemory poolsFragmentation…
    • Los 10 mandamientos delrendimiento1. Amaras a los procedimientos almacenados sobre todas las cosas2. No aplicarás una función de SQL server en vano3. Santificarás los índices4. Honrarás las claves ajenas y las restricciones check5. SI matarás a cursores y consultas ad-hoc6. Cometerás agregación de consultas7. No robarás ciclos de CPU mediante recompilaciones8. No levantarás tablas variables cuando deberían ser temporales9. No consentirás el uso de query hints sin conocimiento de causa10.No codiciaras un SELECT *
    • Esperas y Memoria
    • DMVsVistas de administración dinámicaα Exponen estados y datos de rendimiento β +- 70 vistas β Útiles con DACα División por áreas funcionales β dm_exec_* (codigo ejecutado y conexiones de usuario) β dm_os_* (memoria, bloqueos) β dm_tran_* (transacciones y aislamiento) β dm_io_* (I/O discos y red) β dm_db_* (bases de datos y sus objetos)α Otras β Replicación, service broker…
    • Wait StatsEsperas del servidorα ¿A que está esperando el servidor? β Sys.dm_os_wait_statsα Estadísticas de esperas incrementales β Siempre incrementando contadoresα Útiles para la monitorización β Deltas de tiempoα Tipos de espera más comunes β Paralelismo: CXPACKET β Disco: PAGEIOLATCH_*, WRITELOG… β Bloqueos: LCK_M_*
    • FileIO Stats¿Cómo van los discos?α Sys. dm_io_virtual_file_stats β Una especificación de wait statsα Esperas a nivel de disco β Latencias de lectura y escritura en todas los ficheros (datos y log)α Estadísticas de esperas incrementales β Incrementando contadoresα Monitorización β Deltas de tiempos
    • Memoriaα sys.dm_os_buffer_descriptors β Páginas en el buffer β Distribución por fichero β Distribución por base de datosα Syscacheobjects β Contiene información de la cache β Tipos de objeto β Utilización por objeto en cache
    • Esperas y memoria
    • Nuestra filosofía de trabajo
    • HealthCheck v2Automatizacion del troubleshooting de SolidQα Servicio global aportado por SolidQ β Lanzado en países como España, USA, Brasil, India,… β Generación de documentos en idioma Castellano, Ingles y Portugués,…por ahora α Automatización de la experiencia de SolidQ en troubleshooting de SQL Serverα Mas tiempo para pensar y menos para redactar!! β Resultado: Análisis mas profundos y correlacionadosα Algunos clientes: β Pentágono β …
    • HealthCheck v2Automatizacion del troubleshooting de SolidQα Servidor y hardware β Gestion de memoria, sistema de almacenamiento, alineamiento de discos,…α Instancia de SQL Server β BBDD sistema, uso de recursos de memoria, red, discos,… β Seguridad, SQL Agent, parametros de configuracion, service packs… β Esperas, uso de discos, …α Mantenimiento de Bases de datos β Analisis de estrategias de backups, Consistencia, indexacion, latencias, …α Bases de datos β Configuración, seguridad,…α Topologia de consultasα Migración β Foco específico en aspectos no analizados en SSUA (lo vimos el martes)
    • HealthCheck v2Resultados
    • HealthCheck SecurityServicio de seguridad de SolidQα Cubre aspectos de: β Inicios de sesión γ Autenticación γ Política de passwords (débiles, vacíos, predecibles) γ Excesivos permisos β Usuarios γ Roles de base de datos γ Roles de usuario γ Roles de aplicación β Servidores vinculados γ Contextos de seguridad γ Openrowset β Configuraciones de base de datos β Endpoints
    • HealthCheck AzureMisma filosofía para la nubeα Secciones específicas β Billing β Security β …
    • Si quieres disfrutar de las mejores sesiones denuestros mentores de España y Latino América, ésta es tu oportunidad. http://summit.solidq.com/madrid/