0
REL-322Troubleshooting SQL Server:Un enfoque prácticoEnrique Catalá Bañuls           Enrique Puig NousellesMentor – Área r...
Agendaα       Relational analisisα       Agregacion de consultasα       Collationsα       Alineamiento de particionesα    ...
Detección de consultas ineficientes¿Por qué es tan importante?α El escenario siempre es tan complejo que nadie sabe la  ca...
Detección de consultas ineficientes¿Qué buscamos? α Queremos extraer un valor hash que identifique el patrón    y agregar ...
Troubleshooting¿En qué nos fijamos?                                                   Database Name      Cached Pages Memo...
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 ...
RelationalIndexingMemory poolsFragmentation…
Los 10 mandamientos delrendimiento1. Amaras a los procedimientos almacenados sobre todas las   cosas2. No aplicarás una fu...
Esperas y Memoria
DMVsVistas de administración dinámicaα Exponen estados y datos de rendimiento β   +- 70 vistas β   Útiles con DACα Divisió...
Wait StatsEsperas del servidorα ¿A que está esperando el servidor? β   Sys.dm_os_wait_statsα Estadísticas de esperas incre...
FileIO Stats¿Cómo van los discos?α Sys. dm_io_virtual_file_stats β   Una especificación de wait statsα Esperas a nivel de ...
Memoriaα sys.dm_os_buffer_descriptors β   Páginas en el buffer β   Distribución por fichero β   Distribución por base de d...
Esperas y memoria
Nuestra filosofía de trabajo
HealthCheck v2Automatizacion del troubleshooting de SolidQα Servicio global aportado por SolidQ β   Lanzado en países como...
HealthCheck v2Automatizacion del troubleshooting de SolidQα Servidor y hardware β   Gestion de memoria, sistema de almacen...
HealthCheck v2Resultados
HealthCheck SecurityServicio de seguridad de SolidQα Cubre aspectos de: β       Inicios de sesión     γ     Autenticación ...
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 oportu...
Upcoming SlideShare
Loading in...5
×

Troubleshooting SQL Server: Un enfoque práctico

438

Published on

¿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.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
438
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Troubleshooting SQL Server: Un enfoque práctico "

  1. 1. 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
  2. 2. 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
  3. 3. 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 
  4. 4. 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’ …
  5. 5. 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
  6. 6. Agregación de consultas
  7. 7. T-SQL Query Analizer bySolidQ
  8. 8. 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
  9. 9. RelationalIndexingMemory poolsFragmentation…
  10. 10. 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 *
  11. 11. Esperas y Memoria
  12. 12. 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…
  13. 13. 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_*
  14. 14. 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
  15. 15. 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
  16. 16. Esperas y memoria
  17. 17. Nuestra filosofía de trabajo
  18. 18. 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 β …
  19. 19. 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)
  20. 20. HealthCheck v2Resultados
  21. 21. 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
  22. 22. HealthCheck AzureMisma filosofía para la nubeα Secciones específicas β Billing β Security β …
  23. 23. 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/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×