SQLCLR .NET en el core de SQL Server

24
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 DRP 27 de Mayo Jesus Gil

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

3

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…

Agenda

• 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

• 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

Threads en SQL Server

SQLOS

Memory Node

CPU Node

Scheduler

Worker

Task

Threads en SQL Server

SQLOS

Memory Node

CPU Node

Scheduler

Worker

Task

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

Agenda

Preguntando a SQL Server con DMV

20 de Mayo (12 pm GMT -5)

Ahias Portillo

Resúmen:

En esta sesión veremos algunas consultas que nos

permitirán conocer secretos ocultos de Sql Server, que

podrían salvarnos en más de una vez en problemas de

rendimiento.

Próximo Evento