SlideShare una empresa de Scribd logo
1 de 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
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
• 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
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 datos
Y
Operaciones con alta
componente CPU
Y
Acceso externo SQL
Server
Y*
Acceso a datos y
compontente CPU
Y 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

Más contenido relacionado

Similar a SQLCLR .NET en el core de SQL Server

Presentación: Administración y programación de bases de datos relacionales.
Presentación: Administración y programación de bases de datos relacionales.Presentación: Administración y programación de bases de datos relacionales.
Presentación: Administración y programación de bases de datos relacionales.Angel Ladrero Gracia
 
In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016Joseph Lopez
 
Nos vamos a la nube!
Nos vamos a la nube!Nos vamos a la nube!
Nos vamos a la nube!dbLearner
 
Administrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBAAdministrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBASpanishPASSVC
 
Guías y recomendaciones para instalar y configurar clusters de sql server
Guías y recomendaciones para instalar y configurar clusters de sql serverGuías y recomendaciones para instalar y configurar clusters de sql server
Guías y recomendaciones para instalar y configurar clusters de sql serverEnrique Catala Bañuls
 
Windows Azure SQL Databases
Windows Azure SQL DatabasesWindows Azure SQL Databases
Windows Azure SQL DatabasesSolidQ
 
Base de Datos Grupo Los Informaticos
Base de Datos Grupo Los InformaticosBase de Datos Grupo Los Informaticos
Base de Datos Grupo Los InformaticosPedroJunior178
 
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareJulián Castiblanco
 
Row level security en sql azure y en on premise
Row level security en sql azure y en on premiseRow level security en sql azure y en on premise
Row level security en sql azure y en on premiseSpanishPASSVC
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Julián Castiblanco
 
Adaptive BI Framework
Adaptive BI Framework Adaptive BI Framework
Adaptive BI Framework SolidQ
 
Sql server 2005_para_desarrolladores_madrid
Sql server 2005_para_desarrolladores_madridSql server 2005_para_desarrolladores_madrid
Sql server 2005_para_desarrolladores_madridgermanjimenez1977
 
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...SolidQ
 

Similar a SQLCLR .NET en el core de SQL Server (20)

In-Memory OLTP en SQL Server 2014
In-Memory OLTP en SQL Server 2014In-Memory OLTP en SQL Server 2014
In-Memory OLTP en SQL Server 2014
 
Presentación: Administración y programación de bases de datos relacionales.
Presentación: Administración y programación de bases de datos relacionales.Presentación: Administración y programación de bases de datos relacionales.
Presentación: Administración y programación de bases de datos relacionales.
 
In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016
 
Nos vamos a la nube!
Nos vamos a la nube!Nos vamos a la nube!
Nos vamos a la nube!
 
Administrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBAAdministrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBA
 
Guías y recomendaciones para instalar y configurar clusters de sql server
Guías y recomendaciones para instalar y configurar clusters de sql serverGuías y recomendaciones para instalar y configurar clusters de sql server
Guías y recomendaciones para instalar y configurar clusters de sql server
 
S4-PD1-2.2 EF
S4-PD1-2.2 EFS4-PD1-2.2 EF
S4-PD1-2.2 EF
 
Windows Azure SQL Databases
Windows Azure SQL DatabasesWindows Azure SQL Databases
Windows Azure SQL Databases
 
S4 - EF
S4 - EFS4 - EF
S4 - EF
 
Base de Datos Grupo Los Informaticos
Base de Datos Grupo Los InformaticosBase de Datos Grupo Los Informaticos
Base de Datos Grupo Los Informaticos
 
S ti ci_v1_201302
S ti ci_v1_201302S ti ci_v1_201302
S ti ci_v1_201302
 
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshare
 
OTN TOUR 2012 Performance Database 11g
OTN TOUR 2012 Performance Database 11gOTN TOUR 2012 Performance Database 11g
OTN TOUR 2012 Performance Database 11g
 
Row level security en sql azure y en on premise
Row level security en sql azure y en on premiseRow level security en sql azure y en on premise
Row level security en sql azure y en on premise
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
 
Semana 01.pdf
Semana 01.pdfSemana 01.pdf
Semana 01.pdf
 
Adaptive BI Framework
Adaptive BI Framework Adaptive BI Framework
Adaptive BI Framework
 
Sql server 2005_para_desarrolladores_madrid
Sql server 2005_para_desarrolladores_madridSql server 2005_para_desarrolladores_madrid
Sql server 2005_para_desarrolladores_madrid
 
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
 

Más de SpanishPASSVC

Creación de un modelo de análisis predictivo en la nube
Creación de un modelo de análisis predictivo en la nubeCreación de un modelo de análisis predictivo en la nube
Creación de un modelo de análisis predictivo en la nubeSpanishPASSVC
 
Analizando la performance del subsistema de IO
Analizando la performance del subsistema de IOAnalizando la performance del subsistema de IO
Analizando la performance del subsistema de IOSpanishPASSVC
 
AlwaysON Lecciones Aprendidas
AlwaysON Lecciones AprendidasAlwaysON Lecciones Aprendidas
AlwaysON Lecciones AprendidasSpanishPASSVC
 
Data Science con Microsoft R Server y SQL Server 2016
Data Science con Microsoft R Server y SQL Server 2016Data Science con Microsoft R Server y SQL Server 2016
Data Science con Microsoft R Server y SQL Server 2016SpanishPASSVC
 
Mejoras de Rendimiento para Replicación Transaccional
Mejoras de Rendimiento para Replicación TransaccionalMejoras de Rendimiento para Replicación Transaccional
Mejoras de Rendimiento para Replicación TransaccionalSpanishPASSVC
 
Como leer planes de ejecución
Como leer planes de ejecuciónComo leer planes de ejecución
Como leer planes de ejecuciónSpanishPASSVC
 
AlwaysOn en SQL Server 2016
AlwaysOn en SQL Server 2016AlwaysOn en SQL Server 2016
AlwaysOn en SQL Server 2016SpanishPASSVC
 
VMs de alto rendimiento para SQL Server en AWS y Azure
VMs de alto rendimiento para SQL Server en AWS y AzureVMs de alto rendimiento para SQL Server en AWS y Azure
VMs de alto rendimiento para SQL Server en AWS y AzureSpanishPASSVC
 
Tecnicas avanzadas de monitoreo
Tecnicas avanzadas de monitoreoTecnicas avanzadas de monitoreo
Tecnicas avanzadas de monitoreoSpanishPASSVC
 
Principios de diseño para procesos de ETL
Principios de diseño para procesos de ETLPrincipios de diseño para procesos de ETL
Principios de diseño para procesos de ETLSpanishPASSVC
 
Planeando e implementando servicios de datos con Microsoft Azure
Planeando e implementando servicios de datos con Microsoft AzurePlaneando e implementando servicios de datos con Microsoft Azure
Planeando e implementando servicios de datos con Microsoft AzureSpanishPASSVC
 
Mejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizadosMejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizadosSpanishPASSVC
 
Mejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL ServerMejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL ServerSpanishPASSVC
 
La receta de la abuela para mejores cargas de datos
La receta de la abuela para mejores cargas de datosLa receta de la abuela para mejores cargas de datos
La receta de la abuela para mejores cargas de datosSpanishPASSVC
 
Introducción a Azure Machine Learning
Introducción a Azure Machine LearningIntroducción a Azure Machine Learning
Introducción a Azure Machine LearningSpanishPASSVC
 
Cuadros de mando el todo es más que la suma de las partes
Cuadros de mando el todo es más que la suma de las partesCuadros de mando el todo es más que la suma de las partes
Cuadros de mando el todo es más que la suma de las partesSpanishPASSVC
 
Automatizando la generación de Datawarehouses a través de metadatos
Automatizando la generación de Datawarehouses a través de metadatosAutomatizando la generación de Datawarehouses a través de metadatos
Automatizando la generación de Datawarehouses a través de metadatosSpanishPASSVC
 
Descubriendo el corazón de la optimización “Estadísticas más que un concepto”
Descubriendo el corazón de la optimización “Estadísticas más que un concepto”Descubriendo el corazón de la optimización “Estadísticas más que un concepto”
Descubriendo el corazón de la optimización “Estadísticas más que un concepto”SpanishPASSVC
 
Administrando soluciones de Power BI
Administrando soluciones de Power BIAdministrando soluciones de Power BI
Administrando soluciones de Power BISpanishPASSVC
 
Vista 360 grados de DataZen - Juan Alvarado
Vista 360 grados de DataZen - Juan AlvaradoVista 360 grados de DataZen - Juan Alvarado
Vista 360 grados de DataZen - Juan AlvaradoSpanishPASSVC
 

Más de SpanishPASSVC (20)

Creación de un modelo de análisis predictivo en la nube
Creación de un modelo de análisis predictivo en la nubeCreación de un modelo de análisis predictivo en la nube
Creación de un modelo de análisis predictivo en la nube
 
Analizando la performance del subsistema de IO
Analizando la performance del subsistema de IOAnalizando la performance del subsistema de IO
Analizando la performance del subsistema de IO
 
AlwaysON Lecciones Aprendidas
AlwaysON Lecciones AprendidasAlwaysON Lecciones Aprendidas
AlwaysON Lecciones Aprendidas
 
Data Science con Microsoft R Server y SQL Server 2016
Data Science con Microsoft R Server y SQL Server 2016Data Science con Microsoft R Server y SQL Server 2016
Data Science con Microsoft R Server y SQL Server 2016
 
Mejoras de Rendimiento para Replicación Transaccional
Mejoras de Rendimiento para Replicación TransaccionalMejoras de Rendimiento para Replicación Transaccional
Mejoras de Rendimiento para Replicación Transaccional
 
Como leer planes de ejecución
Como leer planes de ejecuciónComo leer planes de ejecución
Como leer planes de ejecución
 
AlwaysOn en SQL Server 2016
AlwaysOn en SQL Server 2016AlwaysOn en SQL Server 2016
AlwaysOn en SQL Server 2016
 
VMs de alto rendimiento para SQL Server en AWS y Azure
VMs de alto rendimiento para SQL Server en AWS y AzureVMs de alto rendimiento para SQL Server en AWS y Azure
VMs de alto rendimiento para SQL Server en AWS y Azure
 
Tecnicas avanzadas de monitoreo
Tecnicas avanzadas de monitoreoTecnicas avanzadas de monitoreo
Tecnicas avanzadas de monitoreo
 
Principios de diseño para procesos de ETL
Principios de diseño para procesos de ETLPrincipios de diseño para procesos de ETL
Principios de diseño para procesos de ETL
 
Planeando e implementando servicios de datos con Microsoft Azure
Planeando e implementando servicios de datos con Microsoft AzurePlaneando e implementando servicios de datos con Microsoft Azure
Planeando e implementando servicios de datos con Microsoft Azure
 
Mejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizadosMejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizados
 
Mejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL ServerMejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL Server
 
La receta de la abuela para mejores cargas de datos
La receta de la abuela para mejores cargas de datosLa receta de la abuela para mejores cargas de datos
La receta de la abuela para mejores cargas de datos
 
Introducción a Azure Machine Learning
Introducción a Azure Machine LearningIntroducción a Azure Machine Learning
Introducción a Azure Machine Learning
 
Cuadros de mando el todo es más que la suma de las partes
Cuadros de mando el todo es más que la suma de las partesCuadros de mando el todo es más que la suma de las partes
Cuadros de mando el todo es más que la suma de las partes
 
Automatizando la generación de Datawarehouses a través de metadatos
Automatizando la generación de Datawarehouses a través de metadatosAutomatizando la generación de Datawarehouses a través de metadatos
Automatizando la generación de Datawarehouses a través de metadatos
 
Descubriendo el corazón de la optimización “Estadísticas más que un concepto”
Descubriendo el corazón de la optimización “Estadísticas más que un concepto”Descubriendo el corazón de la optimización “Estadísticas más que un concepto”
Descubriendo el corazón de la optimización “Estadísticas más que un concepto”
 
Administrando soluciones de Power BI
Administrando soluciones de Power BIAdministrando soluciones de Power BI
Administrando soluciones de Power BI
 
Vista 360 grados de DataZen - Juan Alvarado
Vista 360 grados de DataZen - Juan AlvaradoVista 360 grados de DataZen - Juan Alvarado
Vista 360 grados de DataZen - Juan Alvarado
 

Último

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 

Último (20)

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 

SQLCLR .NET en el core de SQL Server

  • 1. 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
  • 2. Manténgase conectado a nosotros! Visítenos en http://globalspanish.sqlpass.org /SpanishPASSVC lnkd.in/dtYBzev /user/SpanishPASSVC /SpanishPASSVC
  • 3. 3
  • 4. 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.
  • 5. 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
  • 6. 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
  • 7. • Arquitecto de varias soluciones corporativas como HealthCheck, SQL2Cloud,… • T-SQL, .NET, SSIS, arquitecturas escalables, alta disponibilidad Un poco sobre mi…
  • 9. • 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
  • 10. • Memory buffers, T-SQL, SQLCLR • Puntos de control para administrar • Reserva-liberación de memoria • Operaciones de E/S Integracion CLR
  • 11. • 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
  • 12.
  • 13. • 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
  • 14. 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
  • 15. Consideraciones de memoria Cara Costes de licencia Libera tu memoria! Malas practicas de programación? Considera LOH Large Object Heap, GC, fragmentación… rendimiento
  • 16. Consideraciones de memoria System.Collections.Concurrent Trabaja en pequeños batches No bloquees SqlString vs SqlChar Libera referencias
  • 17.
  • 18. Threads en SQL Server SQLOS Memory Node CPU Node Scheduler Worker Task
  • 19. Threads en SQL Server SQLOS Memory Node CPU Node Scheduler Worker Task
  • 20.
  • 21. Conclusiones T-SQL CLR Operaciones de acceso a datos Y Operaciones con alta componente CPU Y Acceso externo SQL Server Y* Acceso a datos y compontente CPU Y Y
  • 22. Recursos interesantes Proyecto GitHub SQLCLRUtils • https://github.com/enriquecatala/SQLCLRUtils SQLCLR Books Online • https://msdn.microsoft.com/en-us/library/ms131102.aspx 25
  • 24. 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

Notas del editor

  1. Desde preview V12 de Azure SQL Databases se pueden ensamblados tipo SAFE Hay que descargar los parches para V12 a fecha de (26-02-2015) para poder desplegar en Azure http://www.microsoft.com/en-us/download/details.aspx?id=45320 http://www.microsoft.com/en-us/download/details.aspx?id=45319
  2. MPA -> Multi page allocator DWA -> Direct Windows Allocations TS -> Thread Stacks
  3. Desplegar objetos de diversos tipos. Alguno desplegado de forma manual
  4. Ensamblados que pueden ser referenciados directamente, no hace falta cargarlos antes. Si necesitas algo que no esté en estos ensamblados, los puedes cargar con CREATE ASSEMBLY para poder utilizarlos
  5. Reservas de más de 85KB se almacenan directamente en la LOH, que fuerza al GC a actuar mas lentamente y escalar peor la memoria
  6. Si tienes SQL 2012+, utiliza colecciones del namespace System.Collections.Concurrent porque además de ser multithread no bloqueantes, si solo tienes 1 hilo, tienen menor tamaño de memoria y además no utilizan el área LOB No proceses millones de filas en CLR, intenta que tus llamadas a CLR se dividan en varias veces SqlString es útil para trabajar con varchar(max) SqlString struct, SqlChars clase SqlChars es mutable, podemos cambiar sin requerir nueva reserva de memoria
  7. Demos de tipos de datos indexados, uso de sp y tvf donde se vea que accediendo a datos se va mucho peor…costes de inicialización,…
  8. Scheduler -> abstracción de CPU Worker -> abstracción de thread Task -> la operación que se lanza desde el worker
  9. Scheduler -> abstracción de CPU Worker -> abstracción de thread Task -> la operación que se lanza desde el worker
  10. Pero recuerda que tenemos código INMEMORY OLTP y que salvo excepciones, las soluciones de cursores son la última salida
  11. No hay una regla fija, pero generalmente, cuanta mayor es la carga en CPU, generalmente mejor aprovechamiento de la misma obtendremos usando CLR. Recuerda que si puedes llevarte parte a tu aplicación cliente, mejor. *Aceder a recursos externos requiere eliminar la seguridad del ensamblado, tenlo siempre MUY presente