Upload
solidq
View
275
Download
7
Embed Size (px)
DESCRIPTION
Página oficial del SolidQ Summit: http://summit.solidq.com/madrid/2013/ Basado en la película "Cómo perder a un chico en 10 días", esta sesión, cómica pero no romántica, nos resumirá algunos de las cosas que como desarrolladores tendemos a hacer mal, y que perjudican nuestras relaciones con los servidores de base de datos. Empezaremos con el reconocido “SELECT *” y avanzaremos a tópicos mas descubridores.
Citation preview
Javier Loría
Mentor
Arquitecto/ Diseñador Software
Autor
Select *
Select *
Malos planes de acceso
Tránsito en la red
Particularmente (Imágenes, FileStream, etc)
Mantenimiento de las tablas (Replicación)
Falta de WHERE
Falta de WHERE
Malos planes de acceso
Tránsito en la red
Particularmente (Imágenes,
FileStream, etc)
ORDER BY
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
Usar el UNION en vez de UNION ALL
Usar el UNION en vez de UNION ALL
Union: Remueve Duplicados
Union ALL: NO Remueve Duplicados
UNION Equivale SELECT DISTINCT …
Planes de Acceso
Cursores y Loops
Cursores y Loops
Cada FETCH es como un SELECT
Usan grandes cantidades de Memoria
Causan problemas de bloqueos
Consumo de ancho de banda
SCALAR Functions
SCALAR Functions
Una ejecución por fila
• SELECT y WHERE
Interpretadas
• Múltiples comandos
“Mono-hilo”
• Planes de acceso
Bloqueos
Bloqueos
Transacciones cortas
Sin entrada de usuario
Sin Time Out
• SET LOCK_TIMEOUT
NOLOCK
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
Consultas sin Estadísticas
Consultas sin Estadísticas
AUTO_CREATE y AUTO_UPDATE
WHERE o ON con campos calculados
Linked Servers
Difíciles de detectar
No usar argumentos: “SARGABLE”
No usar argumentos: “SARGABLE”
WHERE UPPER(Nombre)='JAVIER'
WHERE ISNULL(Nombre, '')=''
WHERE SUBSTRING(Nombre,1,4)='JAVI'
DateDiff(day,FechaOrden,GetDate()) >= 30
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: