1 Si soy un desarrollador, ¿qué debo conocer de SQL Server? Walter Montes Delgado [email protected] @tewar93 http://waltermontes.com Most Valuable Professional, MCT, MCSA, MCPD
2 Organiza http://tinyurl.com/ComunidadWindows
3 Patrocinadores del SQL Saturday Premier Sponsor Gold Sponsor Bronze Sponsor
4 Walter Montes Delgado Senior Solutions Architect Microsoft MVP ASP.NET/IIS CR Developers.NET http://waltermontes.com
5 Agenda Ediciones de SQL Server Datos importantes Que si hacer Que no hacer SQL Server en la nube
6 Ciertas razones de conocer bien SQL Server Configuración correcta en desarrollo Prevención de problemas en Rendimiento Seguridad Escabalabilidad
7 Ediciones de SQL Server 2014
8 Datos Importantes Escenarios
9 Datos Importantes Escenarios: todo en uno 1.SQL Server Database Engine 2.* SQL Server Management Studio 3.Herramientas de desarrollo y un framework
10 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
11 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 (SQL Server Native Client “Denali”)
12 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
13 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
14 Datos Importantes Servicios SQL Server ServicioUso SQL Server AgentEjecuta jobs, monitorea SQL Server, dispara alertas, automatización de tareas SQL Server Database EngineMotor de base de datos relacional SQL Server BrowserConexión y resolución de nombres a clientes Analysis ServicesProcesamiento analítico de datos (OLAP) Reporting ServicesManejo de reportería Integration ServicesHerramientas graficas y objetos programables para mover, copiar y transformar datos Full-text searchIndices en full-text
15 DEMO: INSTALANDO SQL SERVER Datos importantes
16 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
17 DEMO: ACCESO REMOTO A SQL SERVER Datos importantes
18 Datos Importantes Archivos de una base de datos Tipos de archivos de datos: Primarios (.mdf) Secundarios (.ndf) Logs (.ldf) - 1 por db
19 Datos Importantes Archivos de una base de datos Filegroups: colecciones de archivos Tareas administrativas como respaldo y recuperación Tipos Primario Definidos por usuario
20 Datos Importantes Tipos de datos: numéricos exactos Tipo de datoRangoEspacio Tinyint0 a 2551 Byte Smallint-32,768 a 32,7672 Byte Int-2,147,483,648 a 2,147,483,6474 Byte Bigint-9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 8 Byte
21 Datos Importantes Tipos de datos: money Tipo de datoRangoEspacio Smallmoney-214,748.3648 to 214,748.36474 Byte Money-922,337,203,685,477.5808 to 922,337,203,685,477.5807 8 Byte
22 Datos Importantes Tipos de datos: decimal vs float vs real Decimal: máximo 38 dígitos, exacto Float: aproximado Real: aproximado, Float(24) Finanzas Evitar en WHERE usar = o
23 Datos Importantes Tipos de datos: fechas Date Datetime Datetime2 Datetimeoffset Time Time zone
24 Datos Importantes Tipos de datos: fechas Date Datetime Datetime2 Datetimeoffset Time USAR ESTOS TIPOS DE DATOS
25 Datos Importantes Tipos de datos: textos Char Varchar Text Nchar Nvarchar Ntext Datos + 2 bytes DEJAR DE USAR
26 Datos Importantes Respaldo de Scripts de base de datos Control de cambios Manejo de versiones Fácil acceso Demostración: proyecto de base de datos SQL Server Data Tools https://msdn.microsoft.com/en- us/data/hh297027 https://msdn.microsoft.com/en- us/data/hh297027
27 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
28 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
29 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
30 Datos Importantes Object Relational Mapper Entity Framework Nhibernate Linq to SQL Dapper LLBGen Pro
31 Datos Importantes Object Relational Mapper http://weblogs.asp.net/fbouma/fetch-performance-of-various-net- orm-data-access-frameworks
32 Datos Importantes SQL Injection Infiltración de código malicioso Parametrización de queries Procedimientos almacenados Escapando las entradas de usuario Permisología robusta
33 Datos Importantes SQL Injection
34 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
35 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'
36 Datos Importantes Instalación en ambientes productivos No se instala como cualquier otro software Competencias por I/O Disco duro físico
37 Datos Importantes Herramientas de medición de IOPS Cuellos de botella Problemas Corrección de errores SQLIO SQLIOSim
38 Datos Importantes Transaction Logs Puede crecer por siempre Un full backup no “trunca” el transaction log Respaldar el Transaction Log
39 Datos Importantes Transaction Logs Backup, Shrink, Shrink http://msdn.microsoft.com/en- us/library/ms365418.aspx
40 Datos Importantes Planes de respaldos Recovery model Simple Full Bulk-logged
41 Datos Importantes Planes de respaldos Tipos de backups Copy-only backup (data y logs) Database backup Differential backup Log backup File backup Partial backup
42 SQL Server en la nube
43 43 | Walter Montes Delgado [email protected]://waltermontes.com @tewar93 PREGUNTAS Y RESPUESTAS