Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012
-
Upload
solidq -
Category
Technology
-
view
269 -
download
7
description
Transcript of Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012
![Page 2: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/2.jpg)
Javier Loría
Mentor
Arquitecto/ Diseñador Software
Autor
![Page 3: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/3.jpg)
![Page 4: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/4.jpg)
Select *
![Page 5: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/5.jpg)
Select *
Malos planes de acceso
Tránsito en la red
Particularmente (Imágenes, FileStream, etc)
Mantenimiento de las tablas (Replicación)
![Page 6: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/6.jpg)
Falta de WHERE
![Page 7: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/7.jpg)
Falta de WHERE
Malos planes de acceso
Tránsito en la red
Particularmente (Imágenes,
FileStream, etc)
![Page 8: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/8.jpg)
![Page 9: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/9.jpg)
ORDER BY
![Page 10: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/10.jpg)
ORDER BY
ORDER BY: No usar si no se requiere
Ordenar en el cliente
ORDER BY ocurre:
• ORDER BY - GROUP BY - SELECT DISTINCT – UNION
No asumir el ORDER BY
![Page 11: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/11.jpg)
Usar el UNION en vez de UNION ALL
![Page 12: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/12.jpg)
Usar el UNION en vez de UNION ALL
Union: Remueve Duplicados
Union ALL: NO Remueve Duplicados
UNION Equivale SELECT DISTINCT …
Planes de Acceso
![Page 13: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/13.jpg)
![Page 14: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/14.jpg)
Cursores y Loops
![Page 15: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/15.jpg)
Cursores y Loops
Cada FETCH es como un SELECT
Usan grandes cantidades de Memoria
Causan problemas de bloqueos
Consumo de ancho de banda
![Page 16: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/16.jpg)
SCALAR Functions
![Page 17: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/17.jpg)
SCALAR Functions
Una ejecución por fila
• SELECT y WHERE
Interpretadas
• Múltiples comandos
“Mono-hilo”
• Planes de acceso
![Page 18: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/18.jpg)
![Page 19: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/19.jpg)
Bloqueos
![Page 20: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/20.jpg)
Bloqueos
Transacciones cortas
Sin entrada de usuario
Sin Time Out
• SET LOCK_TIMEOUT
![Page 21: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/21.jpg)
NOLOCK
![Page 22: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/22.jpg)
NOLOCK
Evita el “Shared Lock”= No espero consistencia
Puede retornar la misma fila, varias veces
Puede brincarse filas commited
Tiende a producir INDEX SCAN, y otros efectos
colaterales
![Page 23: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/23.jpg)
![Page 24: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/24.jpg)
Consultas sin Estadísticas
![Page 25: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/25.jpg)
Consultas sin Estadísticas
AUTO_CREATE y AUTO_UPDATE
WHERE o ON con campos calculados
Linked Servers
Difíciles de detectar
![Page 26: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/26.jpg)
No usar argumentos: “SARGABLE”
![Page 27: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/27.jpg)
No usar argumentos: “SARGABLE”
WHERE UPPER(Nombre)='JAVIER'
WHERE ISNULL(Nombre, '')=''
WHERE SUBSTRING(Nombre,1,4)='JAVI'
DateDiff(day,FechaOrden,GetDate()) >= 30
![Page 28: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/28.jpg)
![Page 29: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/29.jpg)
![Page 30: Como Perder un Servidor en 10 Consultas | SolidQ Summit 2012](https://reader037.fdocument.pub/reader037/viewer/2022102816/559887081a28ab41398b456a/html5/thumbnails/30.jpg)
Si quieres disfrutar de las mejores sesiones de
nuestros mentores de España y Latino América,
ésta es tu oportunidad.
http://summit.solidq.com/madrid/
Síguenos: