Date - SQL Saturday

Anuncio
Si soy un desarrollador, ¿qué debo
conocer de SQL Server?
Walter Montes Delgado
Most Valuable Professional
MCSA, MCSD, MCPD, MCITP, MCT
@tewar93
http://waltermontes.com
#SQLSat443
Patrocinadores del SQL Saturday
Gold Sponsor
Bronze Sponsor
Geek Sponsor
Walter Montes Delgado
Solutions Architecture Consultant en
Enhance Solutions
Microsoft MVP ASP.NET/IIS
CR Developers .NET
http://waltermontes.com
Agenda
 Ediciones de SQL Server
 Datos importantes
 Que si hacer
 Que no hacer
 SQL Server en la nube
Ciertas razones de conocer bien SQL
Server
 Configuración correcta en desarrollo
 Prevención de problemas en
 Rendimiento
 Seguridad
 Escalabilidad
Ediciones de SQL Server 2014
Datos Importantes
Escenarios
Datos Importantes
Escenarios: todo en uno
1. SQL Server Database
Engine
2. * SQL Server
Management Studio
3. Herramientas de
desarrollo y un
framework
Datos Importantes
Escenarios: todo en uno
1. SQL Server Database
Engine (Express)
1.
2.
3.
4.
5.
LocalDB
Express
Express with Tools
SSMS Express
Express with Advanced
Services
Datos Importantes
Escenarios: todo en uno
 SQL LocalDB






Contexto usuario
No servicios
El mismo sqlservr.exe
Mismo T-SQL
Instancia por usuario
Lógica de activación en el cliente
Datos Importantes
Escenarios: todo en uno
 SQL LocalDB
 LocalDB corre en un proceso separado
 4MBs binarios, 140MBs instalación
 Queries, Stored Procedures, Geometría y
Geografía
Datos Importantes
Escenarios: todo en uno
1. SQL Server Database
Engine (Express)
2. SQL Server
Management Studio
1.
2.
3.
4.
5.
LocalDB
Express
Express with Tools
SSMS Express
Express with Advanced
Services
Datos Importantes
Servicios SQL Server
Servicio
Uso
SQL Server Agent
Ejecuta jobs, monitorea SQL Server, dispara
alertas, automatización de tareas
SQL Server Database Engine
Motor de base de datos relacional
SQL Server Browser
Conexión y resolución de nombres a clientes
Analysis Services
Procesamiento analítico de datos (OLAP)
Reporting Services
Manejo de reportería
Integration Services
Herramientas graficas y objetos programables
para mover, copiar y transformar datos
Full-text search
Indices en full-text
Datos Importantes
Escenarios: acceso remoto
1.
2.
3.
4.
SQL Server Database Engine
SQL Server Browser
Firewall y dispositivos de red
* SQL Server Management
Studio
5. Herramientas de desarrollo y
un framework
Datos Importantes
Archivos de una base de datos
 Tipos de archivos de datos:
 Primarios (.mdf)
 Secundarios (.ndf)
 Logs (.ldf) - 1 por db
Datos Importantes
Archivos de una base de datos
 Filegroups: colecciones de archivos
 Tareas administrativas como respaldo y
recuperación
 Tipos
 Primario
 Definidos por usuario
Datos Importantes
Tipos de datos: numéricos exactos
Tipo de dato
Rango
Espacio
Tinyint
0 a 255
1 Byte
Smallint
-32,768 a 32,767
2 Byte
Int
-2,147,483,648 a 2,147,483,647
4 Byte
Bigint
-9,223,372,036,854,775,808 a
9,223,372,036,854,775,807
8 Byte
Datos Importantes
Tipos de datos: money
Tipo de dato
Rango
Espacio
Smallmoney
-214,748.3648 to 214,748.3647
4 Byte
Money
-922,337,203,685,477.5808 to
922,337,203,685,477.5807
8 Byte
Datos Importantes
Tipos de datos: decimal vs float vs real
 Decimal: máximo 38 dígitos, exacto
 Float: aproximado
 Real: aproximado, Float(24)
Evitar en WHERE
usar = o <>
Finanzas
Datos Importantes
Tipos de datos: fechas





Date
Datetime
Datetime2
Datetimeoffset
Time
Time zone
Datos Importantes
Tipos de datos: fechas





Date
Datetime
Datetime2
Datetimeoffset
Time
USAR ESTOS TIPOS
DE DATOS
Datos Importantes
Tipos de datos: textos
 Char
 Varchar
 Text
Datos + 2 bytes
DEJAR DE USAR
 Nchar
 Nvarchar
 Ntext
Datos Importantes
Respaldo de Scripts de base de datos




Control de cambios
Manejo de versiones
Fácil acceso
SQL Server Data Tools
https://msdn.microsoft.com/enus/data/hh297027
Datos Importantes
Usar múltiples strings de conexión
1. Conexión para escrituras y lecturas en
tiempo real
2. Conexión para información antigua
(minutos)
3. Conexión para información aún más antigua
Datos Importantes
Object Relational Mapper
1.
2.
3.
4.
5.
6.
7.
8.
Domain Model Pattern
Enfoque en lógica de negocio
Cambios en modelos en un solo punto
Navegabilidad
Configurabilidad
Soporte de concurrencias
Manejo de caché
Transacciones
Datos Importantes
Object Relational Mapper
9. Procedimientos almacenados cuando hay
mucha complejidad
10. Manejo de permisos y accesos limitado
11. Prevén inyección de sql
Datos Importantes
Object Relational Mapper





Entity Framework
Nhibernate
Linq to SQL
Dapper
LLBGen Pro
Datos Importantes
Object Relational Mapper
http://weblogs.asp.net/fbouma/fetch-performance-of-various-netorm-data-access-frameworks
Datos Importantes
SQL Injection





Infiltración de código malicioso
Parametrización de queries
Procedimientos almacenados
Escapando las entradas de usuario
Permisología robusta
Datos Importantes
SQL Injection
Datos Importantes
Objetos: tablas
 Crear tablas en un non-primary filegroup
 Tablas que se acceden comúnmente en el
mismo filegroup
 Índices clusterizados (además en índices
únicos y comúnmente consultado)
 Moderación en triggers
 Moderación cursores
Datos Importantes
EXISTS VS COUNT
 COUNT utiliza toda la tabla
IF ( (SELECT COUNT(1) FROM notes WHERE text = 'hola mundo') > 1)
PRINT 'OK'
IF EXISTS(SELECT id FROM notes WHERE text = 'hola mundo')
PRINT 'OK'
Datos Importantes
Instalación en ambientes productivos
 No se instala como cualquier otro software
 Competencias por I/O
 Disco duro físico
Datos Importantes
Herramientas de medición de IOPS
 Cuellos de botella
 Problemas
 Corrección de errores
 SQLIO
 SQLIOSim
Datos Importantes
Transaction Logs
 Puede crecer por siempre
 Un full backup no “trunca” el transaction log
 Respaldar el Transaction Log
Datos Importantes
Transaction Logs
 Backup, Shrink, Shrink
http://msdn.microsoft.com/enus/library/ms365418.aspx
PREGUNTAS Y RESPUESTAS
contacto
@waltermontes.com
Walter
Montes
Delhado
waltermontes.com
@tewar93
Evaluaciones
Evaluación del evento
http://www.sqlsaturday.com/443/eventeval.aspx
Evaluación de las charlas
http://www.sqlsaturday.com/443/sessions/sessionevaluation.aspx
Próxima sesión
 Acceso a datos para Soluciones altamente
escalables usando SQL, NoSQL y
almacenamiento políglota
Descargar