Vous êtes sur la page 1sur 40

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. LocalDB
2. Express
3. Express with Tools
4. SSMS Express
5. 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. LocalDB
2. Express
3. Express with Tools
4. SSMS Express
5. 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. SQL Server Database Engine
2. SQL Server Browser
3. Firewall y dispositivos de red
4. * 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 8 Byte
9,223,372,036,854,775,807
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 8 Byte
922,337,203,685,477.5807
Datos Importantes
Tipos de datos: decimal vs float vs real
 Decimal: máximo 38 dígitos, exacto Finanzas

 Float: aproximado
 Real: aproximado, Float(24)

Evitar en WHERE
usar = o <>
Datos Importantes
Tipos de datos: fechas
 Date
 Datetime
 Datetime2
 Datetimeoffset Time zone

 Time
Datos Importantes
Tipos de datos: fechas
 Date
 Datetime USAR ESTOS TIPOS
DE DATOS
 Datetime2
 Datetimeoffset
 Time
Datos Importantes
Tipos de datos: textos
 Char
 Varchar Datos + 2 bytes

 Text
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/en-
us/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. Domain Model Pattern
2. Enfoque en lógica de negocio
3. Cambios en modelos en un solo punto
4. Navegabilidad
5. Configurabilidad
6. Soporte de concurrencias
7. Manejo de caché
8. 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-net-
orm-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/en-
us/library/ms365418.aspx
PREGUNTAS Y RESPUESTAS

contacto waltermontes.com
@waltermontes.com

Walter
Montes
Delhado
@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

Vous aimerez peut-être aussi