SQLCLR .NET en el core de SQL Server
-
Upload
spanishpassvc -
Category
Technology
-
view
76 -
download
0
Transcript of SQLCLR .NET en el core de SQL Server
SQLCLR .NET en el core de SQL Server
22 de Abril 2015 (12 pm GMT -5)
Enrique Catala
Resumen:Es posible utilizar .NET para programar funciones,
procedimientos almacenados... en SQL Server pero... ¿es
una buena idea hacerlo? SQLCLR es un recurso
interesante para cualquier desarrollador de base de datos
que nos permite sacar partido ante ciertas situaciones
que el propio lenguaje T-SQL no nos permite. En esta
sesión veremos pros y contras de utilizar .NET para
programar nuestros objetos de BBDD desde un punto de
vista funcional y de rendimiento. La idea es responder a
la eterna pregunta: ¿Cuándo es bueno usar SQLCLR?
Está por comenzar:Próximos Eventos
Moderador: José L. Rivera
Preguntando a Sql Server con
DMV
13 de Mayo
Ahias Portillo
BIML para automatizar patrones
de ETL
20 de Mayo
Miguel Egea
Always ON de 0 a 100, lecciones
aprendidas de la vida real para
un DRP27 de Mayo
Jesus Gil
Manténgase conectado a nosotros!
Visítenos en http://globalspanish.sqlpass.org
/SpanishPASSVC
lnkd.in/dtYBzev
/user/SpanishPASSVC
/SpanishPASSVC
4
Oportunidades de Voluntariado
PASS no pudiera existir sin personas apasionadas y
dedicadas de todas partes del mundo que dan de su
tiempo como voluntarios.
Se un voluntario ahora!!
Para identificar oportunidades locales visita
volunteer.sqlpass.org
Recuerda actualizar tu perfil en las secciones de
“MyVolunteering” y MyPASS para mas detalles.
Sigan Participando!
• Obtén tu membresía gratuita en sqlpass.org
• Linked In: http://www.sqlpass.org/linkedin
• Facebook: http://www.sqlpass.org/facebook
• Twitter: @SQLPASS
• PASS: http://www.sqlpass.org
SQLCLR .NET en el core de SQL Server
6 de Mayo de 2015
Enrique Catalá Bañuls
MVP en SQL Server | MCT | MCITP | MCTS
Mentor en SolidQ
PASS | SQL Saturday
Moderador: José L. Rivera
• Arquitecto de varias soluciones corporativas como
HealthCheck, SQL2Cloud,…
• T-SQL, .NET, SSIS, arquitecturas escalables, alta
disponibilidad
Un poco sobre mi…
• Todos los recursos manejados y trazados por SQL Server
• SQL Server 2012, 2014 : .NET 4.0
• SQL Server 2005 -> 2008 R2: .NET 2.0
• SAFE (default)
• EXTERNAL_ACCESS (confiable)
• UNSAFE (no confiable por sql server)
Integración CLR
• Memory buffers, T-SQL, SQLCLR
• Puntos de control para administrar
• Reserva-liberación de memoria
• Operaciones de E/S
Integracion CLR
• Optimizaciones específicas a tipos de datos
• Tipo de parámetro (in-out)
• Semántica
• Nulabilidad
• Restricciones
• Se evita boxing-unboxing en llamadas
• En la primera ejecución
• Mide tiempos a partir de 2ª ejecucion
Integracion CLR: Compilación
• custommarshallers.dll
• Microsoft.visualbasic.dll
• Microsoft.visualc.dll
• mscorlib.dll
• System.Configuration
• system.data.dll
• System.Data.OracleClient
• System.Data.SqlXml.dll
• system.dll
• system.security.dll
• System.Transactions
• system.web.services.dll
• system.xml.dll
Integracion CLR: Ensamblados
Seguridad
• Calculos
• Acceso a datos localSafe
• SAFE + Acceso a recursos del sistema
• Archivos, redes, variables entorno y registro
External
Access
• Sin restricciones de ningún tipo
• Permite incluso lanzar código no administradoUnsafe
Consideraciones de memoria
Cara Costes de licencia
Libera tu
memoria!Malas practicas de
programación?
Considera
LOH
Large Object Heap,
GC, fragmentación…
rendimiento
Consideraciones de memoria
System.Collections.Concurrent
Trabaja en pequeños
batches
No
bloquees
SqlString
vs SqlChar
Libera
referencias
Conclusiones
T-SQL CLR
Operaciones de
acceso a datosY
Operaciones con alta
componente CPUY
Acceso externo SQL
ServerY*
Acceso a datos y
compontente CPUY Y
Recursos interesantes
Proyecto GitHub SQLCLRUtils
• https://github.com/enriquecatala/SQLCLRUtils
SQLCLR Books Online
• https://msdn.microsoft.com/en-us/library/ms131102.aspx
25